import java.awt.*; import java.awt.event.*; // In diesem Programm erzeugen wir ausnahmsweise die MouseAdapter // dynamisch, statt dass wir Interfaces implementieren. Das hat aber // keinen konkreten Grund, sondern ist nur ein Beispiel. Es ist nicht // falsch, wenn's anders gemacht wird und trotzdem funktioniert. public class KlickButton { // Das Fenster static final Frame frame = new Frame("KlickButton Fenster"); // Der Knopf zum Klicken static final Button button = new Button("Klick!"); // Verhalten 1 static final MouseAdapter verhalten1 = new MouseAdapter() { // ... und eine Methode darin definieren. public void mouseClicked(MouseEvent e) { // Wenn geklickt, verhalten2 aktivieren. button.removeMouseListener(verhalten1); button.addMouseListener(verhalten2); button.setLabel("Bitte diesen Knopf nicht noch einmal klicken!"); } // Ende mouseClicked }; // Ende MouseAdapter // Verhalten 2 static final MouseAdapter verhalten2 = new MouseAdapter() { // ... und eine Methode darin definieren. public void mouseClicked(MouseEvent e) { frame.dispose(); // Fenster schließen. System.exit(0); // Programm beenden. } // Ende mouseClicked }; // Ende MouseAdapter // Hauptprogramm public static void main(String[] args) { // Die Objekte wurden oben alle schon als Konstanten erzeugt, // jetzt müssen wir sie nur konfigurieren und verknüpfen. frame.setSize(600,200); // Fenster-Größe setzen (Breite, Höhe) // Knopf Zeichensatz und Stil auswählen button.setFont(new Font("SansSerif", Font.BOLD, 18)); // Knopf mit Frame verbinden. frame.add(button); // Und Callback für diesen Button aktivieren. button.addMouseListener(verhalten1); // Noch ist kein Fenster zu sehen (obwohl man schon // reinzeichnen kann!), aber gleich: frame.setVisible(true); // Den Rest machen die Callbacks. } }