2009-08-22 8 views

Antwort

2

Beide. EventObject ist die Superklasse von AWTEvent. Und AWTEvent ist die Oberklasse vieler Ereignisse, die Sie im täglichen Code verwenden. Die meisten Tastatur-, Maus- oder grundlegenden Benutzereingabeereignisse sind AWTEvents. Für die spezifischeren Swing-Ereignisse erweitern die meisten von ihnen EventObject - allerdings nicht alle.

Zum Beispiel: Action erstreckt AWTEvent die Eventobject Verlängert

http://java.sun.com/javase/6/docs/api/java/awt/event/ActionEvent.html

Eventobject ist eine sehr einfache Klasse, praktisch nur die grundlegendsten Schnittstellen (obwohl es nicht wirklich eine Schnittstelle ist). AWTEvent ist die Klasse, die die Eingabeereignisse auf einer niedrigeren Ebene behandelt. Für die Swing-Klassen, die nicht direkt mit Hardware-Eingabeereignissen arbeiten, müssen sie nur die von EventObject bereitgestellte Funktionalität erweitern, also erweitern sie diese.

Wenn Sie sehen möchten, welche Ereignisse erweitern, welche Klassen in der API gehen und durchsuchen Sie die java.awt.event (http://java.sun.com/javase/6/docs/api/java/awt/event/package-frame.html) und javax.swing.event (http://java.sun.com/javase/6/docs/api/javax/swing/event/package-frame.html) Pakete zu sehen, welche Ereignisse, die Klassen erweitern.

+0

Eigentlich ist 'AWTEvent' keine Basisklasse der meisten Swing Events. Swing ist nicht bekannt für seine Konsistenz. –

+0

Richtig du bist, die meisten Ereignisse, an die ich dachte, waren AWT Events und ich hatte es nie bemerkt. –

+0

AWTEvent ist keine Basisklasse von ** any ** Swing-Ereignissen; AWTEvents werden nur von AWT-Komponenten verwendet. Swing baut auf AWT auf, hat aber viele Event-Klassen, die völlig unabhängig von AWT sind. Warum sollten sie Unterklassen von AWTEvent sein? –

0

Nun, es müsste EventObject sein, da es die Superklasse von AWTEvent ist. Genauer gesagt ist AWTEvent, wie der Name schon sagt, die Oberklasse aller eingebauten AWT-Ereignisklassen, während Ereignisklassen in anderen Teilen der Standardbibliotheken (einschließlich Swing) direkt von EventObject abstammen. Sie können all dies für sich selbst sehen, indem Sie auf die docs schauen.

Aber das ist wirklich eine Tautologie: Was ist die Superklasse aller Eventklassen? Die Klasse, von der sie alle unterklassifiziert sind, natürlich! Was ich Ihnen gesagt habe, ist wahr (AFAIK) für die Standard-Bibliotheken, aber jeder kann eine Klasse schreiben, die von einer existierenden, nicht-finalen Klasse abstammen und sie "SomethingEvent" nennen. Achten Sie darauf, nicht zu viel in Namen und Klassenhierarchien zu lesen.

Verwandte Themen