2009-08-22 13 views

答えて

2

両方。 EventObjectはAWTEventのスーパークラスです。 AWTEventは、日々のコードで使用する多くのイベントのスーパークラスです。キーボード、マウス、または基本的なユーザー入力イベントのほとんどはAWTEventsです。より具体的なSwingイベントでは、ほとんどのものがEventObjectを拡張しますが、すべてではありません。例えば

:のActionEventがEVENTOBJECT

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

EVENTOBJECTを延在するAWTEventを拡張する(それが実際にインターフェイスではないが)インターフェイスの実用単に最も基本的な、非常に基本的なクラスです。 AWTEventは、下位レベルの入力イベントを実際に処理するクラスです。ハードウェア入力イベントを直接処理しないSwingクラスの場合、EventObjectで提供される機能を拡張するだけで拡張することができます。

APIを使用するクラスを拡張するイベントを確認するには、java.awt.event(http://java.sun.com/javase/6/docs/api/java/awt/event/package-frame.html)パッケージとjavax.swing.event(http://java.sun.com/javase/6/docs/api/javax/swing/event/package-frame.html)パッケージを参照して、どのイベントがどのクラスを拡張するかを確認します。

+0

実際には、AWTEventはほとんどのSwingイベントの基本クラスではありません。スイングは一貫性があるとは知られていません。 –

+0

そうです、私が考えていたイベントのほとんどは、実際にAWTイベントでした。私は気付かなかったでしょう。 –

+0

AWTEventは、**任意の**スイングイベントの基本クラスではありません。 AWTEventは、AWTコンポーネントによってのみ使用されます。 SwingはAWTの上に構築されていますが、AWTから完全に独立した多くのイベントクラスがあります。なぜ彼らはAWTEventのサブクラスであるべきですか? –

0

AWTEventのスーパークラスであるため、イベントオブジェクトでなければなりません。さらに、AWTEventは名前が示すように、組み込みのAWTイベントクラスのすべてのスーパークラスであり、標準ライブラリの他の部分(Swingを含む)のイベントクラスはEventObjectから直接発生します。あなたはdocsを見ることですべてを見ることができます。

しかし、これは本当にトートロジーです:すべてのイベントクラスのスーパークラスは何ですか?もちろん、それらはすべてサブクラス化されたクラスです!私があなたに言ったことは、標準ライブラリのためには本当です(AFAIK)が、誰でも既存の非最終クラスから降りて "SomethingEvent"という名前のクラスを書くことができます。名前やクラス階層をあまり読み過ぎないように注意してください。

関連する問題