1. ホーム
  2. java

[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて

2022-02-25 13:56:02

質問

以下の内容が理解できません。 違い の2つのインターフェイスの間にある。なぜMouseAdapterはMouseListenerのように実装できず、拡張しかできないのでしょうか?私はJavaにかなり新しいです。

で完結するアクションを実行したい場合を考えてみます。 どちらか の2つのインタフェースがあります。

また、どのような場合に一方を使用し、どのような場合に他方を使用するのが賢明なのでしょうか?

解決方法は?

<ブロッククオート

2つのインターフェースの違いがよくわからないのですが。なぜMouseAdapterはMouseListenerのように実装できず、拡張しかできないのでしょうか?

マウスアダプタ インプリメント マウスリスナー .

MouseAdapter :

マウスイベントを受信するための抽象的なアダプタクラスです。このクラスのメソッドは空です。このクラスは、リスナーオブジェクトを作成するための便宜上存在します。 このクラスを拡張して MouseEvent(ドラッグイベントやモーションイベントを含む) あるいは MouseWheelEvent のリスナーを作成し、目的のイベント用のメソッドをオーバーライドします。

がない場合 MouseAdapter を実装した場合 MouseListener の場合,これらのインターフェイスのメソッドをすべて実装する必要があります.

mouseClicked(MouseEvent e)
mouseDragged(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mouseMoved(MouseEvent e)
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
mouseWheelMoved(MouseWheelEvent e)

どのような場合に一方を使用し、どのような場合に他方を使用するのが賢明なのでしょうか?

上記の8つのメソッドを実装する場合は、以下のように実装します。 MouseListener . これら8つのメソッドのうち、一部のメソッドのみを実装したい場合は MouseAdapter を作成し、必要なメソッドのみをオーバーライドしてください。

例)1つのイベント(またはいくつかのイベント)だけを実装することに興味がある場合、例えば mouseClicked(MouseEvent e) イベントを使用するとよいでしょう。 MouseAdapter . もし MouseListener この場合、他のメソッドに対して空白の実装を提供する必要があります。