- 締切済み
コンポーネント
Javaのコンポーネントってどういったもののことを言うんですか?コンポーネントの意味自体はなんとなくわかるのですがJavaにおいて具体的にはどういうものがコンポーネントにあたるのかわかりません。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- pcbeginner
- ベストアンサー率46% (261/560)
>何度もありがとうございます。それではJButtonのインタフェースは >Accessible, ImageObserver, ItemSelectable, MenuContainer, Serializable, SwingConstants >と考えていいんですね? はい。その通りです。 >ソースコードはどういったインタフェースが使われているか調べるだけなので基本的には問いません。 とりあえず、Javaで提供しているクラスのソースコードを「implements」でgrepしてみてはいかがでしょうか。 それで足りないのであれば、Jakartaあたりのソースコードをダウンロードして調べてみるとか。
- pcbeginner
- ベストアンサー率46% (261/560)
>ソースコードを見ても上記のような名前のインタフェースが使われているのが見つかりません。 親クラスで実装しているからです。 JButtonのソースでは「Accessible」しか実装していませんが、 その親であるAbstractButtonのソースを見ると「ItemSelectable」「SwingConstants」を実装しています。 >なるべく大規模のソースコードが公開されているサイトをご存知ないですか? 何のソースコードでしょうか? そして、「大規模」とは何を基準にして「大規模」なのでしょうか? ステップ数?クラス数?
- pcbeginner
- ベストアンサー率46% (261/560)
>SwingでJButtonはコンポーネントにあたるのでしょうか? はい。コンポーネントになります。 JButtonのJavadocを見ると java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.AbstractButton | +--javax.swing.JButton 上記のように継承しています。 java.awt.Componentのサブクラスになるので、コンポーネントになります。 JavaのGUIで使用する部品はほぼ全て「コンポーネント」だと思って良いと思います。 (全て確認していないので、私の極端な考えかもしれません。) また似たような言葉で「コンテナ」(もしくはコンテナー)というものがありますが、こちらは 「コンポーネント」を「入れる」ことのできる「コンポーネント」 のことで、 java.awt.Containerのサブクラス のことです。ご参考までに。
補足
回答ありがとうございます。 それではこのコンポーネントのインタフェースは下記ページに記載されている 「すべての実装インタフェース: Accessible, ImageObserver, ItemSelectable, MenuContainer, Serializable, SwingConstants 」 になるのですか?今、任意のコンポーネントに対してどのインタフェースがよく使われているか調べなくてはいけないのですがソースコードを見ても上記のような名前のインタフェースが使われているのが見つかりません。なるべく大規模のソースコードが公開されているサイトをご存知ないですか?重ね重ねすいませんが宜しくお願いします。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/JButton.html
- pcbeginner
- ベストアンサー率46% (261/560)
私は、 java.awt.Componetクラス(またはそのサブクラス)のインスタンス だと思っています。 また、質問者様はどういうときに「コンポーネント」という言葉を聞いて疑問に思いましたか? それを補足して頂くとより良い回答が得られるかもしれません。
補足
回答ありがとうございます。回答者様のご質問に対する答えにはなっていませんが、私自身、まだJava全般の用語の定義をちゃんと理解できていず何がわからないかもわからない状況だと思います。 SwingでJButtonはコンポーネントにあたるのでしょうか?
補足
何度もありがとうございます。それではJButtonのインタフェースは Accessible, ImageObserver, ItemSelectable, MenuContainer, Serializable, SwingConstants と考えていいんですね? >何のソースコードでしょうか?そして、「大規模」とは何を基準にして「大規模」なのでしょうか?ステップ数?クラス数? ソースコードはどういったインタフェースが使われているか調べるだけなので基本的には問いません。そのような理由なのでクラス数が多いほうが調べやすいかな?と考えています。言葉足らずで申し訳ございません。