AWT ueber close schliesen

bandy

Bekanntes Mitglied
Hallo,

ich habe folgendes AWT-Fenster:
[JAVA=1]
import java.awt.Frame;
import java.awt.Label;


public class Window extends Frame{
//An den Konstruktor wird als Parameter der Titel des Fensters uebergeben
//der im Rahmen oben links erscheint
public Window(String fenstertitel){
super(fenstertitel);
//Instanz von Label erzeugen und Text eingeben der dort erscheinen soll
Label ausgabe=new Label("Hallo Welt");
//an die Methode add als Parameter den Label uebergeben
add(ausgabe);

}
}

}
[/code]

[JAVA=1]public class GUI_Test {


public static void main(String[] args) {
Window Window=new Window("Hallo Welt mit AWT!");
Window.pack();
Window.setVisible(true);

}

}[/code]

Wie kann ich das Programm mit close beenden?:bahnhof:
 
Warum AWT und nicht Swing? AWT ist doch etwas veraltet.

Zur Frage: WindowListener oder WindowAdapter an den Frame dranhängen und in der public void windowClosing(...) einfach System.exit(0) aufrufen.
 
Das würde mich wundern ;-)
Die Frage ausreichend beantwortet?
nicht ganz, habe es versucht deiner Beschreibung nach zu machen und habe folgendes erzielt:
[JAVA=1]import java.awt.Frame;
import java.awt.Label;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;


public class Window extends Frame implements WindowListener{
//An den Konstruktor wird als Parameter der Titel des Fensters uebergeben
//der im Rahmen oben links erscheint
public Window(String fenstertitel){
super(fenstertitel);
//Instanz von Label erzeugen und Text eingeben der dort erscheinen soll
Label ausgabe=new Label("Hallo Welt");
//an die Methode add als Parameter den Label uebergeben
add(ausgabe);

}
public void windowClosing(){

System.exit(0);
}


public void setPreferredSize(int i, int j) {
// TODO Auto-generated method stub

}

@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub

}

}
[/code]

aber es geht noch nicht.
 
Wenn Du's so machst fehlt noch eine Zeile im Konstruktor:
Java:
this.addWindowListener(this);

Ich nehme eigentlich immer WindowAdapter und erzeuge eine innere anonyme Klasse - bleibt der Code kürzer:
Java:
class MyWindow extends Frame {
	public MyWindow() {
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				System.exit(0);
			}
		});
	}
}

Aber warum laesst Java dann AWT nicht verschwinden?
Swing benutzt noch einiges aus dem AWT package und einige Komponenten basieren auf AWT Komponenten z.B ist JFrame ein Subklasse von Frame
 

Neue Themen


Zurück
Oben