JDialog: Hintergrund mit Gradient füllen

Guadrion

Mitglied
Hi,
Ich möchte gerne den Hintergrund meines Dialogs farblich ne Abstufung geben:

Code:
public void paint(Graphics g) {
		Graphics2D g2 = (Graphics2D) g.create();
		int width = (int) getSize().getWidth();
		int height = (int)getSize().getHeight();
		Color gradientStart = new Color(204, 249, 124);
		Color gradientEnd = new Color(174, 222, 94);

		GradientPaint painter = new GradientPaint(0, 0, gradientEnd, 0,
				height / 2, gradientStart);
		g2.setPaint(painter);
		Rectangle2D rect = new Rectangle2D.Double(0, 0, width, height / 2.0);
		g2.fill(rect);

		painter = new GradientPaint(0, height / 2, gradientStart, 0, height,
				gradientEnd);
		g2.setPaint(painter);
		rect = new Rectangle2D.Double(0, (height / 2.0) - 1.0, width, height);
		g2.fill(rect);
	}

Allerdings sind dann meine ganzen Objekte auf dem Dialog verschwunden und erscheinen erst wieder, wenn ich mit der Maus darüber gehe.
Wisst ihr wie ich das ändern kann?
 
Moin!
Verlager deinen Code mal in die paintComponent() Methode
Code:
 public void paintComponent(Graphics g){
        super.paintComponent(g);
       //Dein Code
   }
 
Hallo,

diese Zeile:
Java:
Graphics2D g2 = (Graphics2D) g.create();
bedeutet, dass du auf einer Kopie des Graphics-Objekts renderst. Versuche mal stattdessen
Java:
Graphics2D g2 = (Graphics2D) g;
vielleicht bringt es was.

Grüße
Vincent
 
Zurück