Inhalt Java 1.1 Ereignismodell ·ereignisgesteuerte Programme ·Vergleich von Events in 1.0 und 1.1 ·Listener-Interfaces ·Adapterklassen
Literatur: Wir behandeln das Ereignismodell von Java 1.1. Wichtige Klassen finden sich in java.awt.events und auch java.awt. Weitere Information in Kapitel 7 von [Fla99b] sowie Kapitel 10 aus [LL97]. Wer bereits an Swing und dem Event Modell in Java 1.2 interessiert ist, findet in [Eck98] ein wenig Material, auch Diskussion der vielen unterhaltsamen Unterschiede der AWTs in 1.0, 1.1 und 1.2.
Übersicht |
Ereignismodell |
Java 1.0 gegen 1.1 |
import java.awt.*; import java.awt.event.*; // Fuer Events import java.applet.*; public class AltundNeu extends Applet { Button // Hier: 1.0 = 1.1 b1 = new Button("Knopf 1"), b2 = new Button("Knopf 2"), b3 = new Button("Knopf 3(alt)"), b4 = new Button("Knopf 4(alt)"); public void init(){ // Applet-Methode b1.addActionListener(new B1()); b2.addActionListener(new B2()); this.add(b1); add(b2); add(b3); add(b4); }; // 1.1: zwei innere klassen B1 und B2 class B1 implements ActionListener { public void actionPerformed(ActionEvent e) { getAppletContext().showStatus("Knopf 1"); }; }; class B2 implements ActionListener { public void actionPerformed(ActionEvent e) { getAppletContext().showStatus("Knopf 2"); }; }; // -------------------- Java 1.0 ----------------- public boolean action(Event evt, Object arg) { if (evt.target.equals(b3)) getAppletContext().showStatus("Knopf 3"); else if (evt.target.equals(b4)) getAppletContext().showStatus("Knopf 4"); else return super.action(evt, arg); return true; // true als Erfolgsmeldung }; };
Adapter-Klassen |
Eventklassen und Listenerklassen |
SorteEvent SorteListener SorteAdapter addSorteListener removeSorteListener
Zu jeder Sorte (siehe nächste Folie) gibt es eine Klasse der Events und ein Interface der zugehörigen Listener sowie den Adapter. Daneben die Methoden in den Quellen zum An/Abmelder der Listener. Ausname: Sorte = Mouse (MouseListener und MouseMotionListener)
Table 8: Eventklassen (Übersicht)
Sorte Methoden Quelle (nur die höchsten in der Hierarchie aufgelistet) Action actionPerformed Button List TextField MenueItem Adjustment adjustmentValueChanged Scrollbar Container componentAdded componentRemoved Container Component componentMoved componentHidden componentResized componentShown Component Focus focusGained, focusLost Component Item itemStateChanged Checkbox, CheckboxMenuItem, Choice, List Key keyPressed keyReleased keyTyped Component Mouse
mouseClicked mouseEntered mouseExited mousePressed mouseReleased
mouseDragged MouseMoved Component Text textValueChanged TextComponent Window windowOpened WindowClosing windowActivated windowClosed windowDeactivated windowDeiconifed windowIconified Window
Table 9: Eventklassen