# invalidate() - wie verwenden?



## Dreezard (20. Dez 2004)

Ich habe zwei Frames erstellt. im main-frame ein JPanel auf das ich etwas zeichne und einen zweiten Frame, der sich bei einem Button-klick öffnet und farb-einstellungen im ersten Frame vornimmt. Klicke ich dann auf ok, verschwindet das zweite Fenster und das gezeichnete wird an der stelle wo vorher das zweite Fenster war im ersten mit den neuen Farben neu gezeichnet und erst kurze zeit später das ganze JPanel. Das sieht unsaube aus und ich möchte dem entgegenwirken. Ich habe da etwas von invalidate(); gehört, weiß aber nicht, wie und wo ich es anwenden soll.


----------



## Reality (20. Dez 2004)

Was invalidate() bewirkt, weiss ich nicht (nicht mal nach dem ich in der API nachgeschaut habe).
Aber du kannst repaint() benutzen. Das zeichnet neu.

Liebe Grüße
Reality


----------



## Dreezard (20. Dez 2004)

ja da liegt ja mein problem...
Ich benutze repaint();
Also: Daten werden im zweiten fenster eingegeben, dann fenster mit ok geschlossen und die daten per firePropertyChange an den main-frame übergeben. Zweiter frame schließt sich, und das dahinterliegende im main-frame mit den neuen Farben neu gezeichnet (der rest ist noch mit der alten farbe vorhanden), erst danach erfolgt der aufruf von repaint und zeichnet das ganze JPanel (im main-frame) neu. Ich hätte es aber gern so, dass wenn das zweite fenster geschlossen wird, gleich das JPanel des ersten frames neu gezeichnet wird.


----------

