Zusätzliches Fenster mit OK-Button schließen

  • Themenstarter Themenstarter 23paul23
  • Beginndatum Beginndatum
2

23paul23

Gast
Hallo,

ich erzeuge eine Tabelle (Fenster 1). Durch drücken des Buttons "Neue Tabelle" wird eine neue Tabelle in einem zweiten Fenster erzeugt.
In dieser neuen Tabelle habe ich ein OK-Button. Wenn ich das OK-Button drücke, dann möchte ich eine bestimmte Operation ausführen und NUR das zusätzliche Fenster (Fenster 2) schließen und das Fenster 1 soll weiterhin zu sehen sein.

Mit meinem Code schließen sich aber beide Fenster.

Java:
okButton.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					KlasseA klasse = new KlasseA();
					System.exit(0);  // mit dieser Zeile schließen sich beide Fenster
					klasse.fuehreIrgendEineOperationAus();
					
				}
			});

Ich habe per Forum oder Google entweder System.exit(0) oder setDefaultCloseOperation(EXIT_ON_CLOSE) gefunden. Wobei das zweit nicht für ein Button sondern für ein JFrame zu verwenden ist.

Was kann ich da machen? Vielen Dank
 
Ich habe per Forum oder Google entweder System.exit(0) oder setDefaultCloseOperation(EXIT_ON_CLOSE) gefunden. Wobei das zweit nicht für ein Button sondern für ein JFrame zu verwenden ist.

Naja, System.exit o.ä. haut halt die ganze VM wech 🙂
Du kannst ja einfach das neue Fenster unsichtbar machen (setVisible(false)) oder dispose() dort aufrufen! Natürlich auch wieder an dem Fenster, nicht am Button, das macht ja auch gar keinen Sinn!
 
Ruf im actionPerformed des OK-Buttons die Methode "dispose();" auf. Also angenommen dein erstes Fenster heißt frame1, das Zweite frame2:

Java:
frame2.dispose();

Anstatt System.exit(0); aufzurufen.

Wenn du NUR das eine Fenster per dem X schließen willst, setzt du die DefaultCloseOperation auf JFrame.DISPOSE_ON_EXIT (glaub heißt so 😛)

Edit: Vorposter kam mir zuvor 🙁
 
vielen dank... obwohl ich nach dem okButton... "frame.setVisible(true) stehen habe, bin ich nicht drauf gekommen, diese einfach im actionPerformed auf false zu setzen 🙂
 
Pass bei DISPOSE_ON_CLOSE aber auf. Hat bei mir nicht immer richtig funktioniert. Das Fenster verschwindet zwar, das Programm beendet aber nicht.
 
Klar, aber ich meinte allgemein. Wenn das Letzte Fenster mit DISPOSE_ON_CLOSE geschlossen wird, beendet das Programm trotzdem nicht immer, auch wenn kein Nicht-Dämon mehr läuft.

Kann aber auch nur ich haben, Java macht bei mir nicht immer genaus das, was es soll.
 

Neue Themen


Zurück
Oben