# Programm warten, bis GUI geschlossen ist



## JXJ (3. Sep 2006)

Hallo,

ich bin neu hier und habe eine Frage:

Zuerst bekomme ich einen Hashmap oder ähnliches von woanders und muss dann wieder einen geänderten Hashmap zurückliefern. Dazwischen wird von einer Klasse aus eine GUI aufgerufen, um einige Attribute vom Hashmap zu ändern.
Meine Frage lautet, gibt es von swing, etc.. eine Möglichkeit, den Programmablauf bei der Klasse, von der die GUI aufgerufen wird, zu stoppen, bis die GUI geschlossen wird? 

Vielen Dank für das Ansehen und Beantworten dieses Threads!


LG,
Xuejun


----------



## Beni (3. Sep 2006)

"GUI schliessen"... du meinst ein Dialog, ein Frame oder was? Ein Dialog kannst du modal machen (setModal), die Methode die ihn dann sichtbar macht wartet bis der Dialog wieder geschlossen wurde.


----------



## JXJ (3. Sep 2006)

Danke für die Antwort!


Es handelt sich um ein Frame der Klasse JFrame. Drinnen sind noch JTabbedPane, JScrollPanel, Panel und Buttons.
Die Gui (JFrame) beendet ich momentan mit setVisible(false). Habe momentan provisorisch mit einer endlosen Schleife abhängig von einem Status gemacht, aber das kann ja nicht die Lösung sein, da es alles verzögert.


----------



## Beni (3. Sep 2006)

Bei einem Frame würde ich einen "WindowListener" benutzen: so ein Listener fügst du dem Frame hinzu (addWindowListener), und wenn das Fenster geschlossen wird, wird die Methode "windowClosed" des WindowListeners aufgerufen.

Das funktioniert genau gleich wie der ActionListener bei einem Button :wink:


----------



## JXJ (3. Sep 2006)

Danke werde mir das mit (addWindowListener) noch genauer anschauen.

Aber glücklicherweise hat es so funktioniert, als ich probeweise bei meiner Klasse extends JFrame in extends JDialog geändert habe und setModal(true) gesetzt habe.
Nachteil ist nur, dass ich dann den GuiBuilder bei Netbeans nicht mehr nutzen kann, da es nur "JFrame Form" und "JPanel Form" hat.


----------

