- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ListenerとAdapterの関係がよく分かりません)
ListenerとAdapterの関係がよく分かりません
このQ&Aのポイント
- Jappletを使う際に混乱してしまうListenerとAdapterの違いについて教えてください。
- Listenerの登録にはkeyAdapterやmouseAdapterが使用されますが、ActionAdapterは使われないようです。
- また、Adapterを使わずにkeyListenerやmouseListenerだけで同じ動きをするプログラムを作成することは可能でしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#94983
回答No.1
Listenerというのはインターフェイスだ。これは、implementsすると、すべてのメソッドを実装しなければいけない。となると、例えばものによっては「1つのメソッドだけしか使わない」というときでも、空のメソッドを3つも4つも書かないといけないことになる。例えばマウスクリックだけしか使わないのに、MouseListenerをimplementsして「あ~めんどくせ~」とかいいながら使いもしないmouseEnteredだのmouseExsitedなど書くのはバカらしいだろう。 これは面倒だってんで、あらかじめListenerをimplements済みにしてあるAdapterを用意した、ということ。これなら、使いたいメソッドだけを書けばいい。Listenerのように、使いもしないメソッドまで全部書く必要は無い。要するに「面倒くさい人向けの、Listener組み込み済みクラス」であって、「面倒くさかったら、こんなんありますよ」というだけなので、別にこれを使わずListenerを使ったってぜんぜんかまわない。 では、なぜActionAdapterはないか?というと、ActionListenerには1つのメソッドしかないため。これを使う場合は、必ずこのメソッドを書くことになる。したがって、Adapterをわざわざ用意する必要が無い。というわけで、Adapterは、メソッドが2つ以上あるListenerに対してのみ用意されている。
お礼
なんだかややこしいですが、Adapterというのは便利で汎用的なメソッドなのですね。 小難しいですがなんとか使いこなそうと努力はしてみます。 ありがとうございました。