Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class Test extends Frame
{
MyThread thread = new MyThread();
Button button;
public Test()
{
this.setSize(500, 500);
button = new Button("Button"); //einen neuen Button mit der Aufschrift Button anlegen
this.add(button); //den Button zum Fenster hinzufuegen
button.addActionListener( //dem Button sagen, dass er ein Ereignis ausloesen soll wenn er gedrueckt wird
new ActionListener() { //der ActionListener reagiert auf das Ereignis welches vom Button kommt
public void actionPerformed(ActionEvent event) {
System.out.println("Button"); //Auf der Konsole wird nun der Text Button ausgegeben
}
}
);
this.addWindowListener(
new WindowAdapter()
{
public void windowClosed(WindowEvent arg0) {
System.exit(0);
}
public void windowClosing(WindowEvent arg0) {
dispose();
}
}
);
this.setVisible(true);
}
public static void main(String[] args)
{
new Test();
}
}
hab jetzt mal das wichtigste bei mir oben kommentiert. Alles was nicht kommentiert ist ist dafuer zustaendig das sich ueberhaupt erst mal ein Fenster oeffnet beim Programmstart und das das Programm auf das klicken von dem x von dem Fenster reagiert und beendet wird.
Hoffe das du es jetzt einigermassen nachvollziehen kannst
Z.B 1. Du implementierst das Interface ActionListener,
registrierst einen ActionListener an deinem Button
und überschreibst die actionPerformed()-Methode aus ActionListener
Code:
public class MyFrame extends Frame implements ActionListener {
private Button myButton;
public MyFrame(...
//im Konstruktor von MyFrame dann
myButton = new Button("OK");
myButton.addActionListener(this); //Listener am Button registrieren
...
}
//Methode überschreiben
public void actionPerformed(ActionEvent e) {
//hier ein Beispiel, wenn dein Frame mehrere Buttons besitzt
Object quelle = e.getSource();
if(quelle == myButton) {
System.out.println("OK-Button geklickt");
}
}
}
Oder 2. Du verwendest anonyme innere Klassen
Code:
//im Konstruktor
myButton = new Button("OK");
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("OK-Button geklickt");
}
});
myButton = new Button("OK");
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("OK-Button geklickt");
}
});
-einen neuen Button mit der Aufschift "OK" instanziieren.
-einen ActionListener am Button registrieren. Das wird mit der Methode addActionListener(this) gemacht.
this zeigt hier auf die Instanz, in der man sich gerade befindet, also eine Instanz von Frame.
D.h., der Frame ist gleichzeitig ein Listener (Lauscher), der auf ActionEvents hört.
In der gleichen Zeile gehts weiter mit new ActionListener() {.
Hier wird eine Instanz einer anonymen, inneren Klasse innerhalb der addActionListener()-Methode erzeugt. Im Prinzip ist die anonyme Klasse vom Typ ActionListener. Damit das funktioniert, wird gleich die actionPerformed()-Methode aus ActionListener überschrieben, also mit Code gefüllt.
Die actionPerformed()-Methode ist die einzigste Methode im Interface ActionListener.
Klassen, die dieses Interface implementieren müssen die Methode überschreiben, um nicht selbst abstract zu werden, bzw. damit von ihnen Instanzen erzeugt werden können.
Der ActionListener übergibt die ActionEvents an diese Methode. In den ActionEvents sind u.a. Informationen über die Quellen etc. des Ereignisses gespeichert, die dann verarbeitet werden können.
Ich würde dir weiterhin empfehlen, nicht zu versuchen alleine anhand der API-Doku
die in eine neue Sprache (die GUI-Programmierung) einzuarbeiten, das kann nur
zur Frustration führen.
Arbeite dich besser anhand eines Tutorials hoch um die einzelnen Komponenten
kennenzulernen und auch die Verzahnung zu verstehen.