2009-08-22 7 views

Répondre

2

Les deux. EventObject est la superclasse d'AWTEvent. Et AWTEvent est la super-classe de nombreux événements que vous utiliserez dans le code au jour le jour. La plupart des événements d'entrée clavier, souris ou utilisateur de base sont AWTEvents. Pour les événements Swing plus spécifiques, la plupart d'entre eux étendent EventObject - mais pas tous.

Par exemple: ActionEvent étend AWTEvent qui Prolonge ObjetEvenement

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

ObjetEvenement est une classe très basique, pratiquement tout le plus fondamental des interfaces (bien que ce n'est pas réellement une interface). AWTEvent est la classe qui gère réellement les événements d'entrée à un niveau inférieur. Pour les classes Swing qui ne traitent pas directement avec les événements d'entrée de matériel, ils ont seulement besoin d'étendre la fonctionnalité fournie par EventObject, c'est donc ce qu'ils étendent.

Si vous voulez voir des événements qui étendent les classes aller aux packages de l'API et parcourir les java.awt.event (http://java.sun.com/javase/6/docs/api/java/awt/event/package-frame.html) et javax.swing.event (http://java.sun.com/javase/6/docs/api/javax/swing/event/package-frame.html) pour voir quels événements qui étendent les classes.

+0

En fait, 'AWTEvent' n'est pas une classe de base de la plupart des événements Swing. Swing n'est pas connu pour être cohérent. –

+0

Vous avez raison, la plupart des événements auxquels je pensais étaient en fait des événements AWT et je ne l'avais même jamais remarqué. –

+0

AWTEvent n'est pas une classe de base d'événements d'oscillation ** any **; AWTEvents sont utilisés uniquement par les composants AWT. Swing est construit au-dessus de AWT, mais il a de nombreuses classes d'événements qui sont complètement indépendantes de AWT. Pourquoi devraient-ils être des sous-classes d'AWTEvent? –

0

Eh bien, ce devrait être EventObject, puisqu'il s'agit de la superclasse de AWTEvent. Plus précisément, AWTEvent est, comme son nom l'indique, la super-classe de toutes les classes d'événements AWT intégrées, tandis que les classifications d'événements dans d'autres parties des bibliothèques standard (y compris Swing) descendent directement de EventObject. Vous pouvez voir tout cela en regardant le docs.

Mais c'est vraiment une tautologie: Quelle est la superclasse de toutes les classes d'événements? La classe dont ils sont tous sous-classés, bien sûr! Ce que je vous ai dit est vrai (AFAIK) pour les bibliothèques standard, mais n'importe qui peut écrire une classe qui descend de n'importe quelle classe existante non finale et l'appeler "SomethingEvent". Veillez à ne pas trop lire dans les noms et les hiérarchies de classe.

Questions connexes