Wie hier versprochen, zeige ich jetzt wie einfach das erzeugte Fenster wieder geschlossen und die Applikation somit beendet werden kann.
Ich stelle erst den WindowListener vor, der als Interface von Java zur Verfügung gestellt wird und einfach in die von mir dafür erstellte Klasse “FensterAbhoerer” per implements eingebunden wird.
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
class FensterAbhoerer implements WindowListener
{
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
}
Diese, und die anderen Methoden…
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
werden von Eclipse automatisch “importiert” und müssen von uns noch ausprogrammiert werden.
Ich habe, damit wir das Fenster mit dem [x] in der Leiste schließen können, habe ich nun die Zeile
System.exit(0);
reingeschrieben. Die restlichen Methoden können wir erst einmal außer Acht lassen und lassen Sie einfach so im Quellcode stehen.
Hier noch einmal der gesamte Quellcode im Zusammenhang:
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
class FensterAbhoerer implements WindowListener
{
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
}
public class Fenster extends Frame
{
// Instanzvariablen
private String name;
private int x, y;
// Konstruktor
public Fenster(String name, int x, int y, boolean v)
{
this.name = name;
this.x = x;
this.y = y;
this.setSize(x, y);
this.setVisible(v);
}
// Main-Methode
public static void main(String[] args) {
WindowListener ah = new FensterAbhoerer();
Fenster window = new Fenster("Fenster 1", 640, 480, true);
window.addWindowListener(ah);
}
}
Nun können wir das Fenster wieder schließen und damit die Applikation beenden. Im nächsten Artikel werde ich dann ein paar Elemente, wie z.B. Buttons und Textfelder, einfügen.
Also dran bleiben.
