モジュール java.desktop
パッケージ java.awt.event

クラスMouseEvent

すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
MenuDragMouseEvent, MouseWheelEvent

public class MouseEvent extends InputEvent
コンポーネント内でマウス・アクションが発生したことを示すイベントです。 マウス・アクションは、アクション発生時にマウス・カーソルが特定コンポーネントの境界の隠されていない部分上にあるときにのみ、そのコンポーネントで発生したと見なされます。 Swingのコンポーネントのような軽量コンポーネントの場合は、そのマウス・イベント・タイプがコンポーネントで有効になっている場合のみ、マウス・イベントがコンポーネントにディスパッチされます。 マウス・イベント・タイプを有効にするには、対応するマウス・ベースのEventListenerをコンポーネント(MouseListenerまたはMouseMotionListener)に追加するか、対応するマスク・パラメータ(AWTEvent.MOUSE_EVENT_MASKまたはAWTEvent.MOUSE_MOTION_EVENT_MASK)を指定してComponent.enableEvents(long)を呼び出します。 マウス・イベント・タイプがコンポーネントで有効になっていない場合、対応するマウス・イベントは、そのマウス・イベント・タイプが有効になっている最初の祖先にディスパッチされます。

たとえば、MouseListenerをコンポーネントに追加したか、enableEvents(AWTEvent.MOUSE_EVENT_MASK)を呼び出した場合は、MouseListenerで定義されているすべてのイベントがコンポーネントにディスパッチされます。 一方、MouseMotionListenerが追加されておらず、AWTEvent.MOUSE_MOTION_EVENT_MASKを指定してenableEventsが呼び出されていない場合は、マウス・モーション・イベントはコンポーネントにディスパッチされません。 マウス・モーション・イベントは代わりに、マウス・モーション・イベントが有効になっている最初の祖先にディスパッチされます。

この低レベル・イベントは、次の場合にコンポーネント・オブジェクトによって生成されます。

  • マウス・イベント
    • マウス・ボタンを押す
    • マウス・ボタンを離す
    • マウス・ボタンをクリックする(押してから離す)
    • マウス・カーソルがコンポーネントのジオメトリの隠されていない部分に入る
    • マウス・カーソルがコンポーネントのジオメトリの隠されていない部分から出る
  • マウス・モーション・イベント
    • マウスを移動する
    • マウスをドラッグする

MouseEventオブジェクトは、そのコンポーネントのaddMouseListenerメソッドを使って「関連する」マウス・イベントを受け取るように登録されている、すべてのMouseListenerまたはMouseAdapterオブジェクトに渡されます。 (MouseAdapterオブジェクトはMouseListenerインタフェースを実装します。) 各リスナー・オブジェクトは、マウス・イベントを含むMouseEventを取得します。

MouseEventオブジェクトは、そのコンポーネントのaddMouseMotionListenerメソッドを使ってマウス・モーション・イベントを受け取るように登録されている、すべてのMouseMotionListenerまたはMouseMotionAdapterオブジェクトにも渡されます。 (MouseMotionAdapterオブジェクトはMouseMotionListenerインタフェースを実装します。) 各リスナー・オブジェクトは、マウス・モーション・イベントを含むMouseEventを取得します。

マウス・ボタンをクリックするとイベントが生成され、登録されているMouseListenerに送られます。 モーダル・キーの状態は、InputEvent.getModifiers()およびInputEvent.getModifiersEx()を使って取得できます。 InputEvent.getModifiers()によって返されたボタン・マスクは、すべてのボタンの現在の状態ではなく、状態が変更されたボタンのみを反映します。 (ノート: ALT_MASK/BUTTON2_MASKおよびMETA_MASK/BUTTON3_MASKの値がオーバーラップするため、修飾キーが関連するマウス・イベントの場合は、これが常にあてはまるわけではありません)。 すべてのボタンおよび修飾キーの状態を取得するには、InputEvent.getModifiersEx()を使用します。 状態が変更されたボタンはgetButton()により返されます。

たとえば、マウスの第1ボタンを押すと、イベントは次の順序で送信されます。


    id              modifiers    button
    MOUSE_PRESSED:  BUTTON1_MASK BUTTON1
    MOUSE_RELEASED: BUTTON1_MASK BUTTON1
    MOUSE_CLICKED:  BUTTON1_MASK BUTTON1
 
複数のマウス・ボタンを押した場合は、各ボタンのプレス、リリース、クリックに対して個別のイベントが生成されます。

たとえば、ユーザーがボタン1に続いてボタン2を押し、同じ順序でボタンを離した場合、次の一連のイベントが生成されます。


    id              modifiers    button
    MOUSE_PRESSED:  BUTTON1_MASK BUTTON1
    MOUSE_PRESSED:  BUTTON2_MASK BUTTON2
    MOUSE_RELEASED: BUTTON1_MASK BUTTON1
    MOUSE_CLICKED:  BUTTON1_MASK BUTTON1
    MOUSE_RELEASED: BUTTON2_MASK BUTTON2
    MOUSE_CLICKED:  BUTTON2_MASK BUTTON2
 
ボタン2を先に離した場合には、BUTTON2_MASKMOUSE_RELEASED/MOUSE_CLICKEDのペアが先に生成され、そのあとにBUTTON1_MASKのそのペアが生成されます。

マウス・ボタンが追加され、BUTTON1BUTTON2、およびBUTTON3の定数で表されるボタンの標準セットが拡張されます。 追加のボタンには、割り当てられたBUTTONx定数はなく、そのボタン・マスクには、割り当てられたBUTTONx_DOWN_MASK定数はありません。 ただし、4から始まる序数をボタン番号(ボタンID)として使用できます。 getMaskForButton(button)メソッドによって取得される値は、ボタン・マスクとして使用できます。

MOUSE_DRAGGEDイベントは、マウスのボタンを離すまで、マウスのボタンが押されたComponentに(マウスの位置がそのComponentの境界内にあるかどうかに関係なく)継続して送られます。 ドラッグ&ドロップの実装はプラットフォームによって異なるため、ネイティブのドラッグ&ドロップの操作中にMOUSE_DRAGGEDイベントが配信されない場合があります。 マルチスクリーン環境の場合には、マウスの位置がそのComponentに関連付けられたGraphicsConfigurationの境界の外側にある場合でも、マウス・ドラッグ・イベントはComponentに送られます。 ただし、この場合のマウス・ドラッグ・イベントで報告されるマウスの位置は、実際のマウスの位置と異なることがあります。

  • 仮想デバイスのないマルチスクリーン環境の場合
    マウス・ドラッグ・イベントで報告された座標はクリッピングされ、Componentに関連付けられたGraphicsConfigurationの境界内に収められる。
  • 仮想デバイスを持つマルチスクリーン環境の場合
    マウス・ドラッグ・イベントで報告された座標はクリッピングされ、Componentに関連付けられた仮想デバイスの境界内に収められる。

特定のMouseEventインスタンスのidパラメータがMOUSE_FIRSTからMOUSE_LAST-1までの範囲にない場合に、未指定の動作が発生します(MOUSE_WHEELは受け入れられません)。

導入されたバージョン:
1.1
関連項目:
  • フィールド詳細

    • MOUSE_FIRST

      public static final int MOUSE_FIRST
      マウス・イベントに使用されるIDの範囲内の最初の番号です。
      関連項目:
    • MOUSE_LAST

      public static final int MOUSE_LAST
      マウス・イベントに使用されるIDの範囲内の最後の番号です。
      関連項目:
    • MOUSE_CLICKED

      public static final int MOUSE_CLICKED
      「マウス・クリック」イベントです。 このMouseEventは、マウス・ボタンを押して離すと発生します。
      関連項目:
    • MOUSE_PRESSED

      public static final int MOUSE_PRESSED
      「マウス・プレス」イベントです。 このMouseEventは、マウス・ボタンを押すと発生します。
      関連項目:
    • MOUSE_RELEASED

      public static final int MOUSE_RELEASED
      「マウス・リリース」イベントです。 このMouseEventは、マウス・ボタンを離すと発生します。
      関連項目:
    • MOUSE_MOVED

      public static final int MOUSE_MOVED
      「マウス移動」イベントです。 このMouseEventは、マウスの位置を変更すると発生します。
      関連項目:
    • MOUSE_ENTERED

      public static final int MOUSE_ENTERED
      「フォーカス取得」イベントです。 このMouseEventは、マウス・カーソルがコンポーネントのジオメトリの隠されていない部分に入ると発生します。
      関連項目:
    • MOUSE_EXITED

      public static final int MOUSE_EXITED
      「フォーカス喪失」イベントです。 このMouseEventは、マウス・カーソルがコンポーネントのジオメトリの隠されていない部分から出ると発生します。
      関連項目:
    • MOUSE_DRAGGED

      public static final int MOUSE_DRAGGED
      「マウス・ドラッグ」イベントです。 このMouseEventは、マウス・ボタンを押している間にマウスの位置が変更されると発生します。
      関連項目:
    • MOUSE_WHEEL

      public static final int MOUSE_WHEEL
      「マウス・ホイール」イベントです。 これは、MouseWheelEventのみです。 ホイール付きマウスのホイールを回転させると発生します。
      導入されたバージョン:
      1.4
      関連項目:
    • NOBUTTON

      public static final int NOBUTTON
      マウス・ボタンなしを示します。getButton()によって使用されます。
      導入されたバージョン:
      1.4
      関連項目:
    • BUTTON1

      public static final int BUTTON1
      マウス・ボタン1を示します。getButton()によって使用されます。
      導入されたバージョン:
      1.4
      関連項目:
    • BUTTON2

      public static final int BUTTON2
      マウス・ボタン2を示します。getButton()によって使用されます。
      導入されたバージョン:
      1.4
      関連項目:
    • BUTTON3

      public static final int BUTTON3
      マウス・ボタン3を示します。getButton()によって使用されます。
      導入されたバージョン:
      1.4
      関連項目:
  • コンストラクタの詳細

    • MouseEvent

      public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
      指定されたソース・コンポーネント、型、時間、修飾子、座標、クリック・カウント、popupTriggerフラグ、ボタン番号で、MouseEventオブジェクトを構築します。

      無効なイベントを作成すると(複数の古い_MASK、または一致しない修飾子/ボタン値を使用するなどによって)、未指定の動作が発生します。 フォームMouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger, button)の呼び出しは、呼び出しMouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, button)とまったく同じように動作します。ここで、xAbsとyAbsはスクリーン上のソース・ロケーションと相対座標xとyを定義します。xAbsとyAbsは、ソースが表示されていない場合はゼロに設定されます。 このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

      パラメータ:
      source - イベントを発生させたComponent
      id - イベントのタイプを示す整数。 許容される値については、MouseEventのクラスの説明を参照してください。
      when - イベントが発生した時間を渡すlong整数。 負またはゼロの値を渡すことはお薦めできません
      modifiers - イベントの発生時に押されていた修飾キーおよびマウス・ボタン(Shift、Ctrl、Alt、Metaなど)を記述する修飾子マスク。 このパラメータの値として使用できるのは拡張修飾子だけです(拡張修飾子については、InputEvent.getModifiersEx()クラスを参照)。 負の値のパラメータを渡すことはお薦めできません。 ゼロの値は修飾子が渡されなかったことを意味します
      x - マウス位置のx座標(水平方向)。 負の値を渡すことができます
      y - マウス位置のy座標(垂直方向)。 負の値を渡すことができます
      clickCount - イベントに関連付けられたマウス・クリックの回数。 負の値を渡すことはお薦めできません
      popupTrigger - boolean型。このイベントがポップアップ・メニューのトリガーである場合はtrue
      button - 状態が変更されたマウス・ボタンを示す整数。 このパラメータには次の規則が適用されます。
      • 拡張マウス・ボタンのサポートがJavaでdisabledにされている場合、NOBUTTONBUTTON1BUTTON2BUTTON3の標準ボタンによってのみ、MouseEventオブジェクトを作成できます。
      • 拡張マウス・ボタンのサポートがJavaでenabledにされている場合、標準ボタンによってMouseEventオブジェクトを作成できます。 拡張マウス・ボタンのサポートがJavaでenabledにされている場合、標準ボタンに加えて、マウスに4つ以上のボタンがある場合に、4からMouseInfo.getNumberOfButtons()の範囲のボタンを使用して、MouseEventオブジェクトを作成できます。
      例外:
      IllegalArgumentException - buttonが0より小さい場合
      IllegalArgumentException - sourceがnullである場合
      IllegalArgumentException - buttonがBUTTON3より大きく、拡張されたマウス・ボタンのサポートがJavaのdisabledの場合
      IllegalArgumentException - buttoncurrent number of buttonsより大きく、拡張されたマウス・ボタンのサポートがJavaのenabledの場合
      IllegalArgumentException - 無効なbutton値が渡された場合
      IllegalArgumentException - sourceがnullである場合
      導入されたバージョン:
      1.4
      関連項目:
    • MouseEvent

      public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
      指定されたソース・コンポーネント、型、修飾子、座標、クリック・カウント、popupTriggerフラグで、MouseEventオブジェクトを構築します。 フォームMouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger)の呼び出しは、呼び出しMouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, MouseEvent.NOBUTTON)とまったく同じように動作します。ここで、xAbsとyAbsはスクリーン上のソース・ロケーションと相対座標xとyを定義します。xAbsとyAbsは、ソースが表示されていない場合はゼロに設定されます。 このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。
      パラメータ:
      source - イベントを発生させたComponent
      id - イベントのタイプを示す整数。 許容される値については、MouseEventのクラスの説明を参照してください。
      when - イベントが発生した時間を渡すlong整数。 負またはゼロの値を渡すことはお薦めできません
      modifiers - イベントの発生時に押されていた修飾キーおよびマウス・ボタン(Shift、Ctrl、Alt、Metaなど)を記述する修飾子マスク。 このパラメータの値として使用できるのは拡張修飾子だけです(拡張修飾子については、InputEvent.getModifiersEx()クラスを参照)。 負の値のパラメータを渡すことはお薦めできません。 ゼロの値は修飾子が渡されなかったことを意味します
      x - マウス位置のx座標(水平方向)。 負の値を渡すことができます
      y - マウス位置のy座標(垂直方向)。 負の値を渡すことができます
      clickCount - イベントに関連付けられたマウス・クリックの回数。 負の値を渡すことはお薦めできません
      popupTrigger - boolean型。このイベントがポップアップ・メニューのトリガーである場合はtrue
      例外:
      IllegalArgumentException - sourceがnullである場合
      関連項目:
    • MouseEvent

      public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
      指定されたソース・コンポーネント、型、時間、修飾子、座標、絶対座標、クリック・カウント、popupTriggerフラグ、ボタン番号で、MouseEventオブジェクトを構築します。

      無効なイベントを作成すると(複数の古い_MASK、または一致しない修飾子/ボタン値を使用するなどによって)、未指定の動作が発生します。 コンストラクタに渡された相対座標と絶対座標の値が矛盾している場合でもマウス操作のインスタンスは作成され、例外はスローされません。 このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

      パラメータ:
      source - イベントを発生させたComponent
      id - イベントのタイプを示す整数。 許容される値については、MouseEventのクラスの説明を参照してください。
      when - イベントが発生した時間を渡すlong整数。 負またはゼロの値を渡すことはお薦めできません
      modifiers - イベントの発生時に押されていた修飾キーおよびマウス・ボタン(Shift、Ctrl、Alt、Metaなど)を記述する修飾子マスク。 このパラメータの値として使用できるのは拡張修飾子だけです(拡張修飾子については、InputEvent.getModifiersEx()クラスを参照)。 負の値のパラメータを渡すことはお薦めできません。 ゼロの値は修飾子が渡されなかったことを意味します
      x - マウス位置のx座標(水平方向)。 負の値を渡すことができます
      y - マウス位置のy座標(垂直方向)。 負の値を渡すことができます
      xAbs - マウス位置の絶対x座標(水平方向)。負の値を渡すことができます
      yAbs - マウス位置の絶対y座標(垂直方向)。負の値を渡すことができます
      clickCount - イベントに関連付けられたマウス・クリックの回数。 負の値を渡すことはお薦めできません
      popupTrigger - boolean型。このイベントがポップアップ・メニューのトリガーである場合はtrue
      button - 状態が変更されたマウス・ボタンを示す整数。 このパラメータには次の規則が適用されます。
      • 拡張マウス・ボタンのサポートがJavaでdisabledにされている場合、NOBUTTONBUTTON1BUTTON2BUTTON3の標準ボタンによってのみ、MouseEventオブジェクトを作成できます。
      • 拡張マウス・ボタンのサポートがJavaでenabledにされている場合、標準ボタンによってMouseEventオブジェクトを作成できます。 拡張マウス・ボタンのサポートがJavaでenabledにされている場合、標準ボタンに加えて、マウスに4つ以上のボタンがある場合に、4からMouseInfo.getNumberOfButtons()の範囲のボタンを使用して、MouseEventオブジェクトを作成できます。
      例外:
      IllegalArgumentException - buttonが0より小さい場合
      IllegalArgumentException - sourceがnullである場合
      IllegalArgumentException - buttonがBUTTON3より大きく、拡張されたマウス・ボタンのサポートがJavaのdisabledの場合
      IllegalArgumentException - buttoncurrent number of buttonsより大きく、拡張されたマウス・ボタンのサポートがJavaのenabledの場合
      IllegalArgumentException - 無効なbutton値が渡された場合
      IllegalArgumentException - sourceがnullである場合
      導入されたバージョン:
      1.6
      関連項目:
  • メソッドの詳細

    • getLocationOnScreen

      public Point getLocationOnScreen()
      イベントの絶対x、y座標を返します。 デスクトップ領域が複数の物理画面デバイスにまたがっている可能性のある仮想デバイス・マルチスクリーン環境では、これらの座標は仮想の座標系を基準にしています。 それ以外の場合、これらの座標は、コンポーネントのGraphicsConfigurationに関連付けられた座標系を基準にしています。
      戻り値:
      絶対X座標と絶対Y座標を含むPointオブジェクト。
      導入されたバージョン:
      1.6
      関連項目:
    • getXOnScreen

      public int getXOnScreen()
      イベントの絶対x座標(水平方向)を返します。 デスクトップ領域が複数の物理画面デバイスにまたがっている可能性のある仮想デバイス・マルチスクリーン環境では、この座標は仮想の座標系を基準にしています。 それ以外の場合、この座標は、コンポーネントのGraphicsConfigurationに関連付けられた座標系を基準にしています。
      戻り値:
      x水平方向の絶対位置を示す整数
      導入されたバージョン:
      1.6
      関連項目:
    • getYOnScreen

      public int getYOnScreen()
      イベントの絶対y座標(垂直方向)を返します。 デスクトップ領域が複数の物理画面デバイスにまたがっている可能性のある仮想デバイス・マルチスクリーン環境では、この座標は仮想の座標系を基準にしています。 それ以外の場合、この座標は、コンポーネントのGraphicsConfigurationに関連付けられた座標系を基準にしています。
      戻り値:
      y垂直方向の絶対位置を示す整数
      導入されたバージョン:
      1.6
      関連項目:
    • getX

      public int getX()
      ソース・コンポーネントを基準とする、イベントの相対x座標(水平方向)を返します。
      戻り値:
      xコンポーネントを基準とする水平位置を示す整数
    • getY

      public int getY()
      ソース・コンポーネントを基準とする、イベントの相対y座標(垂直方向)を返します。
      戻り値:
      yコンポーネントを基準とする垂直位置を示す整数
    • getPoint

      public Point getPoint()
      ソース・コンポーネントを基準とする、イベントの相対x、y座標を返します。
      戻り値:
      ソース・コンポーネントを基準とするx座標およびy座標を含むPointオブジェクト
    • translatePoint

      public void translatePoint(int x, int y)
      指定されたx (水平方向)およびy (垂直方向)オフセットを加算することにより、イベントの座標を新しい位置に変換します。
      パラメータ:
      x - 現在のx座標に加算されるx (水平方向)値
      y - 現在のy座標に加算されるy (垂直方向)値
    • getClickCount

      public int getClickCount()
      このイベントに関連付けられたマウス・クリック数を返します。
      戻り値:
      クリック数を表す整数値
    • getButton

      public int getButton()
      状態が変更されたマウス・ボタンがある場合、そのマウス・ボタンを返します。 戻り値の範囲は、0からMouseInfo.getNumberOfButtons()値です。 戻り値には、少なくとも次の定数が含まれます。
      • NOBUTTON
      • BUTTON1
      • BUTTON2
      • BUTTON3
      これらの定数を使用して、アプリケーションで返されたボタン番号と比較できます。 次に例を示します。
       if (anEvent.getButton() == MouseEvent.BUTTON1) {
       
      特に、ボタンが1、2、または3つのマウスの場合は、このメソッドによって次の値が返されます。
      • 0 (NOBUTTON)
      • 1 (BUTTON1)
      • 2 (BUTTON2)
      • 3 (BUTTON3)
      BUTTON3より大きいボタン番号には、定数識別子がありません。 したがって、ボタンが5つのマウスがインストールされている場合は、このメソッドによって次の値が返されます。
      • 0 (NOBUTTON)
      • 1 (BUTTON1)
      • 2 (BUTTON2)
      • 3 (BUTTON3)
      • 4
      • 5

      ノート: 拡張マウス・ボタンのサポートがJavaでdisabledにされている場合、AWTイベント・サブシステムでは拡張マウス・ボタンのマウス・イベントは発生しません。 したがって、このメソッドがNOBUTTONBUTTON1BUTTON2BUTTON3以外を返すことはありません。

      戻り値:
      拡張マウス・ボタンのサポートがJavaでenabledにされている場合は、0からMouseInfo.getNumberOfButtons()値のいずれか。 拡張マウス・ボタンのサポートがJavaでdisabledにされている場合は、この範囲にはNOBUTTONBUTTON1BUTTON2BUTTON3
      NOBUTTONBUTTON1BUTTON2、またはBUTTON3が含まれます。
      導入されたバージョン:
      1.4
      関連項目:
    • isPopupTrigger

      public boolean isPopupTrigger()
      このマウス・イベントが、そのプラットフォームのポップアップ・メニュー・トリガー・イベントであるかどうかを返します。

      ノート: ポップアップ・メニューのトリガーはシステムによって異なります。 したがって、クロス・プラットフォームを適切に機能させるために、mousePressedおよびmouseReleasedの両方でisPopupTriggerをチェックすることをお薦めします。

      戻り値:
      boolean型。このイベントがこのプラットフォームのポップアップ・メニュー・トリガーである場合はtrue
    • getMouseModifiersText

      public static String getMouseModifiersText(int modifiers)
      イベントの発生時に押されていた「Shift」キーや「Ctrl+Shift」キーなどの修飾キーやマウス・ボタンを記述するStringインスタンスを返します。 これらの文字列はawt.propertiesファイルを変更することによりローカライズが可能です。

      InputEvent.ALT_MASKInputEvent.BUTTON2_MASKは同じ値になるため、どちらの修飾子に対しても文字列「Alt」が返されます。 同様に、InputEvent.META_MASKInputEvent.BUTTON3_MASKは同じ値になるため、どちらの修飾子に対しても文字列「Meta」が返されます。

      負の値のパラメータを渡すことは誤りであり、未指定の文字列が返されます。 ゼロのパラメータは修飾子が渡されていないことを示し、空の文字列が返されます。

      パラメータ:
      modifiers - イベントの発生時に押されていた修飾キーおよびマウス・ボタンを記述する修飾子マスク
      戻り値:
      文字列イベント発生時に押されていた修飾キーおよびマウス・ボタンの組み合わせを記述するテキスト文字列
      導入されたバージョン:
      1.4
      関連項目:
    • paramString

      public String paramString()
      このイベントを特定するパラメータ文字列を返します。 このメソッドは、イベント・ログの作成およびデバッグに便利です。
      オーバーライド:
      paramString、クラス: ComponentEvent
      戻り値:
      イベントを特定する文字列とその属性