EIN fenster schliessen
manu
- java
Hallo liebe Leute,
ich habe eine Frage, ich öffne mit meinem Programm ein Fenster (Frame) und mit einem Menü im Fenster (Frame) ein weiteres. Nun ist es so, wenn ich nur das zweite schliessen möchte, so schliessen sich beide! Wie kann ich es anstellen, dass sich nur das eine schliesst wenn ich auss kreuzlein obenrechts klicke?
Mein CFensterLauscher:
-------------------------------------------------------
import java.awt.event.*;
public class CFensterLauscher extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
-------------------------------------------------------
In der anderen Klasse:
-------------------------------------------------------
addWindowListener(new CFensterLauscher());
-------------------------------------------------------
Mit freundlichen Grüssen
manu
Guude!
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
Ein "System.exit(0)" veranlasst die JVM sich selbst zu beenden, insofern schließen sich beide Fenster. Wenn Du möchtest, dass sich nur das eine Fenster schließt, verwende die Methoden "dispose()" und "setVisible(false)":
public void windowClosing(WindowEvent event) {
event.getWindow().setVisible(false);
event.getWindow().dispose();
}
Etwas universeller kannst Du Deinen WindowAdapter gestalten, indem Du in seinem Konstruktor einen Boolean-Wert übergibst, der bestimmt, ob die JVM beendet werden soll:
import java.awt.event.*;
public class CFensterLauscher extends WindowAdapter {
private boolean exitSystem;
public WindowClosingAdapter(boolean exitSystem) {
this.exitSystem = exitSystem;
}
public void windowClosing(WindowEvent event) {
event.getWindow().setVisible(false);
event.getWindow().dispose();
if(exitSystem) {
System.exit(0);
}
}
}
Für das Fenster Deiner Hauptanwendung registrierst Du den WindowAdapter mit "addWindowListener(new CFensterLauscher(true))", für das zweite Fenster entsprechend mit "false".
LG ausm Hesseland
Lemmy