System.exit(0); ausführen, wenn letztes Fenster geschlossen

Status
Nicht offen für weitere Antworten.

pc-world

Bekanntes Mitglied
Ich habe mehrere Fenster.
Durch die Anweisung
Code:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
wird ja der Prozess gekillt, wenn das Fenster geschlossen wird.
Doch wie mache ich es, dass der Prozess erst gekillt wird (also
Code:
System.exit(0);
), wenn das letzte Fenster geschlossen wird?

Gibt es da was in der API oder muss ich da selber einen Fensterzähler erstellen?
 
G

Gast

Gast
gibts noch nichts, macht auch wenig sinn. programme die wirr fenster öffnen sind pfui.
 

pc-world

Bekanntes Mitglied
Gast hat gesagt.:
gibts noch nichts, macht auch wenig sinn. programme die wirr fenster öffnen sind pfui.

Dast stimmt, das nervt wirklich.
Sollte ich das mit JTabbedPane lösen (es muss auf mehrere Fenster zugegriffen werden können)? Das alles mit JDialogs zu machen, wäre Unsinn...
 

Krondor

Aktives Mitglied
Hi probiers mal hiermit:

Code:
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;


public class CloseWindow 
extends JFrame
implements WindowListener {

	private static int counter = 0;
	
	public CloseWindow() {
		addWindowListener(this);
		counter++;
		setSize(100, 100);
		setVisible(true);
	}
	
	@Override
	public void windowActivated(WindowEvent arg0) {}

	@Override
	public void windowClosed(WindowEvent arg0) {}

	@Override
	public void windowClosing(WindowEvent arg0) {
		counter--;
		if(counter <= 0) {
			System.exit(1);
		}
	}

	@Override
	public void windowDeactivated(WindowEvent arg0) {}

	@Override
	public void windowDeiconified(WindowEvent arg0) {}

	@Override
	public void windowIconified(WindowEvent arg0) {}

	@Override
	public void windowOpened(WindowEvent arg0) {}

	public static void main(String[] args) {
		for(int i=0;i<5;i++) {
			new CloseWindow();
		}
	}
}

Gefällt zwar vielleicht nicht jedem aber hilft dir vielleicht weiter ;)
Einfach statt dem JFrame das CloseWindow benutzen. (kannste auch gerne umbenennen ist mir kein dümmerer Name eingefallen ! ;) )

Achso und zur richtigen Benutzung würde ich oben das "setSize", das "setVisible" und die Main-Methode rausschmeißen ;)
 

Illuvatar

Top Contributor
Wenn das letzte Fenster disposed ist, hört das Programm auf. Außer du startest irgendwelche nicht-daemon-Threads.
 

pc-world

Bekanntes Mitglied
Krondor hat gesagt.:
Hi probiers mal hiermit:

Code:
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;


public class CloseWindow 
extends JFrame
implements WindowListener {

	private static int counter = 0;
	
	public CloseWindow() {
		addWindowListener(this);
		counter++;
		setSize(100, 100);
		setVisible(true);
	}
	
	@Override
	public void windowActivated(WindowEvent arg0) {}

	@Override
	public void windowClosed(WindowEvent arg0) {}

	@Override
	public void windowClosing(WindowEvent arg0) {
		counter--;
		if(counter <= 0) {
			System.exit(1);
		}
	}

	@Override
	public void windowDeactivated(WindowEvent arg0) {}

	@Override
	public void windowDeiconified(WindowEvent arg0) {}

	@Override
	public void windowIconified(WindowEvent arg0) {}

	@Override
	public void windowOpened(WindowEvent arg0) {}

	public static void main(String[] args) {
		for(int i=0;i<5;i++) {
			new CloseWindow();
		}
	}
}

Gefällt zwar vielleicht nicht jedem aber hilft dir vielleicht weiter ;)
Einfach statt dem JFrame das CloseWindow benutzen. (kannste auch gerne umbenennen ist mir kein dümmerer Name eingefallen ! ;) )

Achso und zur richtigen Benutzung würde ich oben das "setSize", das "setVisible" und die Main-Methode rausschmeißen ;)

Danke, funktioniert bestens!
 

The_S

Top Contributor
pc-world hat gesagt.:
Das hat bei mir auch nicht funktioniert (ich starte KEINE Extra-Threads).

Ich weiß ja nicht was du für eine komische VM hast, aber bei mir (und überall anders) funktionierts :roll:

Code:
public class Test {

	public static void main(String[] args) {
		
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setSize(400, 300);
		JTextArea area = new JTextArea();
		frame.getContentPane().add(area);
		frame.setVisible(true);
	}
}

Wenn du deinen Code zeigst, kann ich dir vermutlich auch sagen, was du falsch gemacht hast ;) .
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
S Dispose() anstatt system.exit(0) AWT, Swing, JavaFX & SWT 8
B JavaFx TreeView mit file system AWT, Swing, JavaFX & SWT 1
J AWT System Farben / java.awt.SystemColor funktioniert nicht AWT, Swing, JavaFX & SWT 4
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
L Komplettes Löschen SWT vom System AWT, Swing, JavaFX & SWT 6
T JavaFX System.out.println in TextArea AWT, Swing, JavaFX & SWT 15
S Swing JRE System Libary AWT, Swing, JavaFX & SWT 3
A Wie baue ich das Bus-System in ein Java Projekt ein? AWT, Swing, JavaFX & SWT 5
M Benutzer-Dialog ohne System.in/out AWT, Swing, JavaFX & SWT 2
Luk10 Fragen zum Koordinaten System AWT, Swing, JavaFX & SWT 3
D System.out.println() gibt html-Tags mit aus AWT, Swing, JavaFX & SWT 2
GUI-Programmer Translucent JFrame mit System-LookAndFeel AWT, Swing, JavaFX & SWT 4
S 2D-Grafik Icon in Image (System Icons) AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
J Swing Doppelklickzeit vom System AWT, Swing, JavaFX & SWT 17
A Swing Text von System.out.printIn in eine TextArea übergen AWT, Swing, JavaFX & SWT 12
R Wie in GUI System.out's darstellen AWT, Swing, JavaFX & SWT 8
T Dynamic JTree: File System Problem AWT, Swing, JavaFX & SWT 2
R MVC: System.out.prinln in View umleiten geht nicht richtig AWT, Swing, JavaFX & SWT 7
V Swing: System-Look&Feel unter KDE AWT, Swing, JavaFX & SWT 3
R Meldungen System.out.println auf Fenster umleiten? AWT, Swing, JavaFX & SWT 3
M Image in System Clipboard mit java 1.3 AWT, Swing, JavaFX & SWT 2
M Problem mit System.setOut()/setErr() und MultiThreading AWT, Swing, JavaFX & SWT 11
S K.O.-System zeichnen AWT, Swing, JavaFX & SWT 3
V System Look and Feel, FileChooser, Optionen einer jar-Datei AWT, Swing, JavaFX & SWT 10
D Auf System-Icons wie die aus JOptionPane zugreifen? AWT, Swing, JavaFX & SWT 6
S Defaulticon für einen Datentyp vom System bekommen? AWT, Swing, JavaFX & SWT 3
S LaF - switcht erst während des Runs auf System.LaF AWT, Swing, JavaFX & SWT 2
G standard system icons AWT, Swing, JavaFX & SWT 1
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Alternativen zu EXIT AWT, Swing, JavaFX & SWT 4
vodkaz JFrame Exit AWT, Swing, JavaFX & SWT 2
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
S Serialisierung vor Exit AWT, Swing, JavaFX & SWT 2
F JMenuItem exit AWT, Swing, JavaFX & SWT 2
S Vor Exit Verbindung trennen AWT, Swing, JavaFX & SWT 3
F Jframe Exit Funktion überladen AWT, Swing, JavaFX & SWT 3
S Window Listener, Exit, bin am Verzweifeln AWT, Swing, JavaFX & SWT 24
M MouseEnter - Exit - Starthilfe bitte! AWT, Swing, JavaFX & SWT 3
S Exit Dialog wie bei Eclipse? AWT, Swing, JavaFX & SWT 8
MiMa JavaFX JAR unter Windows ausführen schlägt fehl? AWT, Swing, JavaFX & SWT 5
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
Z Methode bei Boolean change neu Ausführen AWT, Swing, JavaFX & SWT 9
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
MasterCaution Swing .jar Datei ausführen AWT, Swing, JavaFX & SWT 12
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
A Methode in bestimmten Intervall ausführen AWT, Swing, JavaFX & SWT 2
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
E JavaFX JavaFX Application in Thread ausführen AWT, Swing, JavaFX & SWT 1
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
C Swing GUI extrem langsam - GUI-Code richtig ausführen AWT, Swing, JavaFX & SWT 1
J Programm im GUI ausführen AWT, Swing, JavaFX & SWT 4
B Ressourcen laden beim Ausführen der .jar nicht schnell genug AWT, Swing, JavaFX & SWT 2
H Komponenten unmittelbar nach dem Ausführen teilweise unsichtbar AWT, Swing, JavaFX & SWT 3
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
J Nach Timer ausführen AWT, Swing, JavaFX & SWT 6
T Bei Klick Code ausführen AWT, Swing, JavaFX & SWT 17
K Per Textfield Methode ausführen AWT, Swing, JavaFX & SWT 6
N Mehrere Tasks nacheinander ausführen AWT, Swing, JavaFX & SWT 7
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
S Action Listener in innerer Klasse ausführen. AWT, Swing, JavaFX & SWT 8
N Swing Java Komponente zur Darstellung von klickbaren Links, die Java Funktionen ausführen können AWT, Swing, JavaFX & SWT 2
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
A Swing Delay (1-4 Sek.) bei JTable und Dialog beim ersten Ausführen AWT, Swing, JavaFX & SWT 3
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
A Grafikproblem beim ausführen einer JAR AWT, Swing, JavaFX & SWT 9
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
H String ausführen und damit weiterarbeiten AWT, Swing, JavaFX & SWT 4
Junker Fensterinhalt vor ausführen von repaint komplett löschen. AWT, Swing, JavaFX & SWT 2
N Swing Projekt - jar ausführen AWT, Swing, JavaFX & SWT 11
S JFrame, beim ausführen passiert nichts AWT, Swing, JavaFX & SWT 3
S Funktion nur ausführen, wenn Maus über Componente ist AWT, Swing, JavaFX & SWT 2
GilbertGrape bei "Enter" Funktion ausführen, egal wo der Fokus AWT, Swing, JavaFX & SWT 2
W Beim Schliessen Aktion ausführen AWT, Swing, JavaFX & SWT 2
V JFrame schließen und Programmzeile(n) ausführen AWT, Swing, JavaFX & SWT 3
J KeyEvent bei JTable mehrmals hintereinander ausführen AWT, Swing, JavaFX & SWT 9
T SWT - Wie Windows erstelltes .jar auf einem MAC ausführen? AWT, Swing, JavaFX & SWT 25
O Abfragen beim öffnen oder danach ausführen? AWT, Swing, JavaFX & SWT 4
G Klasse in Klasse einbinden und ausführen! AWT, Swing, JavaFX & SWT 5
S Class in einer anderen Class ausführen? AWT, Swing, JavaFX & SWT 5
A SWT: Action über Hotkey ausführen AWT, Swing, JavaFX & SWT 2
C ApplicationWindow Shell minimieren (Anderes Event ausführen) AWT, Swing, JavaFX & SWT 4
A Aktion beim anklicken einer Zeile in einer Tabelle ausführen AWT, Swing, JavaFX & SWT 4
C Probleme beim ausführen von Programmen mit Fenstern+Inhalt AWT, Swing, JavaFX & SWT 3
F Action ausführen? AWT, Swing, JavaFX & SWT 3
MDKeil ext. Programm in Java-Fenster ausführen? AWT, Swing, JavaFX & SWT 2
C Problem beim Ausführen von Thread per Button AWT, Swing, JavaFX & SWT 2
F Link aus JEditorPane ausführen AWT, Swing, JavaFX & SWT 2
J Methode die (Graphics g) benötigt von Thread ausführen lass AWT, Swing, JavaFX & SWT 23
H Code nach dem schließen eines Fensters ausführen? AWT, Swing, JavaFX & SWT 3
G Schließen eines Fensters über [X] und Methode ausführen AWT, Swing, JavaFX & SWT 2
R Button actions mit Tastatur ausführen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben