public void paint(Graphics2D g2d) { frameNumber++; Dimension dimension = getDimension(); BufferedImage mainStage = createMainStage(); BufferedImage frame = mainStage.getSubimage(0, 48 - frameNumber * 2, dimension.width, dimension.height); g2d.drawImage(frame, null, null); Color progressbarBackgroundColor = new Color(basicColor); Color progressbarShadowStartColor = ColorUtils.overwriteAlpha( ColorUtils.adjustLightness(progressbarBackgroundColor, 0.7f), 0.6f); Color progressbarShadowEndColor = ColorUtils.overwriteAlpha( ColorUtils.adjustLightness(progressbarBackgroundColor, 0.3f), 0.6f); // paint a shadow in the form of semi-transparent gradient g2d.setPaint( new GradientPaint(0, 0, progressbarShadowStartColor, 0, 7, progressbarShadowEndColor)); g2d.fillRect(0, 0, dimension.width, 7); }