PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Swing: Panels manipulieren während das Fenster sichtbar ist?



Qudus
16-05-2006, 13:01
hi

Ich habe folgendes Problem: Ich will auf einem JFrame ein bestimmtes JPanel-object entfernen und ein anderes einfügen. Wenn ich das mache während das Fenster angezeigt wird, sehe ich keine Veränderung; außer, dass meine Maus-Aktionen keine Wirkung mehr auf die alten Inhalte haben (erwartungsgemäß natürlich, denn sie sind ja nicht mehr da).
Wenn ich auf dem JFrame vorher setVisible(false) ausführe und nachher setVisible(true), ist alles wunderbar. Nachteil bei dieser Lösung: Ich verwende ein undekoriertes vollbild-großes Fenster. Bei dieser Aktion sehe ich für eine Sekunde den Desktop. Das will ich unbedingt vermeiden. Und ich denke, das sollte ein bekanntes Problem sein, für das es sicherlich eine Lösung gibt.

Ich stelle mir etwas vor wie: Ändere die Inhalte eines JFrames f. Führe Methode repaintEverything() auf f aus und bewundere das Fenster. (Oder so ähnlich)

Gruß, Qudus

bischi
16-05-2006, 14:15
Es gibt für diesen fall glaub irgendwo eine update-Methode:

Ich glaub, es war die:
javax.swing.plaf.ComponentUI.update(Graphics, JComponent);

Graphics kannst du über this.getGraphics() erhalten (glaub ich zumindest) und als JComponent gibst du die geänderte Komponente an.

Ich kann die Doku leider nicht direkt verlinken: http://java.sun.com/j2se/1.5.0/docs/api/

MfG Bischi