Previous Contents Next

9   Events

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


Figure 4: Events & GUIs


Ereignismodell




Figure 5: Event-Modell (AWT-Events)


Java 1.0 gegen 1.1
Beispiel 22  [Alt und Neu]   Folgendes kleine Applet stellt die Eventmodelle von Java 1.0 und 1.1 im Vergleich gegenüber. Man beachte die if-Kaskade im 1.0-Modell und die Verwedung innerer Klassen für 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



15. Mai


July 4, 2000
Previous Contents Next