public class MouseEvent extends InputEvent
EventDispatcher
」で説明したキャプチャ・フェーズとバブリング・フェーズを介してこのノードにイベントが配信されます。
マウス(ポインタ)の場所は複数の座標系に対して相対的に取得できます。x,yの場合、MouseEventのノードの原点が基準となり、sceneX,sceneYの場合、ノードが含まれているScene
の原点が基準となり、screenX,screenYの場合、マウス・ポインタが含まれている画面の原点が基準となります。
ドラッグ・ジェスチャには3つのタイプがあります。これらはすべてマウス押下イベントによって開始され、マウス解放イベントによって終了します。発生するジェスチャはソース・ノードによって決定されます。
単純な押下、ドラッグ、解放ジェスチャがデフォルトです。これは、図形のサイズを変更したり、図形を周辺にドラッグする場合などに適しています。押下、ドラッグ、解放のジェスチャ全体が1つのノードに配信されます。マウス・ボタンが押下されると、最上位ノードが選択され、ボタンが解放されるまで、後続のすべてのマウス・イベントが同じノードに配信されます。これらのイベントによってマウス・クリック・イベントが生成された場合、そのイベントも同じノードに配信されます。
単純な押下、ドラッグ、解放ジェスチャでは、その他のノードは関与せず、イベントも受け取りません。これらのノードがジェスチャに関与する必要がある場合は、完全な押下、ドラッグ、解放ジェスチャをアクティブ化する必要があります。このジェスチャは、ノード間を接続したり、ノードを他のノードにドラッグする場合などに適しています。このジェスチャ・タイプについては、ジェスチャ・ターゲットに配信されるイベントを含め、MouseDragEvent
でより詳しく説明しています。
3つ目のジェスチャ・タイプは、プラットフォームでサポートされているドラッグ・アンド・ドロップ・ジェスチャです。これは、データの転送に最適で、(必ずしもFXでない)アプリケーション間での処理にも対応しています。このジェスチャ・タイプについては、DragEvent
でより詳しく説明しています。
簡潔にまとめると、マウス・ボタンが押下されたときに、単純な押下、ドラッグ、解放ジェスチャが自動的にアクティブ化され、すべてのMouseEvent
がジェスチャ・ソースに配信されます。ドラッグを開始すると、少し後にDRAG_DETECTED
イベントが発生します。そのハンドラで、ノードまたはシーンに対してstartFullDrag
メソッドを呼び出すことによって、完全な押下、ドラッグ、解放ジェスチャを開始できます(この場合、ジェスチャ・ターゲットへのMouseDragEvent
の配信が開始されます)。また、ノードまたはシーンに対してstartDragAndDrop
メソッドを呼び出すことによって、ドラッグ・アンド・ドロップ・ジェスチャを開始できます(この場合、システムがドラッグ・アンド・ドロップ・モードに切り替わり、MouseEvent
のかわりにDragEvent
の配信が開始されます)。これらのメソッドのいずれも呼び出さなかった場合は、単純な押下、ドラッグ、解放ジェスチャが続行されます。
タッチ画面上で指をドラッグすると、マウス・ドラッグ・イベントだけでなく、スクロール・ジェスチャ・イベントも生成されることに注意してください。それがアプリケーション内の競合を意味する場合(物理的なドラッグ・アクションが2つの異なるハンドラによって処理される場合)、isSynthesized()
メソッドを使用して問題を検出し、それに従ってドラッグ・ハンドラの動作を調整できます。
マウスがノードに入ると、ノードはMOUSE_ENTERED
イベントを受け取り、マウスがノードから出ると、ノードはMOUSE_EXITED
イベントを受け取ります。これらのイベントは入出の対象ノードにのみ配信され、キャプチャ/バブリング・フェーズを経由しないように見えます。これが最も一般的なユースケースです。
キャプチャまたはバブリングが必要な場合は、MOUSE_ENTERED_TARGET
/MOUSE_EXITED_TARGET
イベントが使用されます。通常、これらのイベントはキャプチャ/バブリング・フェーズを経由します。つまり、マウスが親自体またはその子に入ったときに親がMOUSE_ENTERED_TARGET
イベントを受け取る場合があります。これらの2つのケースを区別するために、ノードと同様にイベント・ターゲットをテストできます。
これらの2つのタイプは密接に関係しています。MOUSE_ENTERED
/MOUSE_EXITED
は、MOUSE_ENTERED_TARGET
/MOUSE_EXITED_TARGET
のサブタイプです。キャプチャ・フェーズでは、MOUSE_ENTERED_TARGET
が親に配信されます。イベントがイベント・ターゲット(マウスが実際に入ったノード)に配信されると、そのタイプがMOUSE_ENTERED
に切り替わります。その後、バブリング・フェーズでタイプがMOUSE_ENTERED_TARGET
に戻されます。ただし、1つのイベントのタイプを切り替えたのみであるため、フィルタ処理したり、使用すると、両方のイベント・バリアントに影響します。MOUSE_ENTERED_TARGET
イベント・ハンドラは、サブタイプ関係に従って、ターゲット上のMOUSE_ENTERED
イベントを受け取ります。
ContextMenuEvent
を参照してください。修飾子と型 | フィールドと説明 |
---|---|
static EventType<MouseEvent> |
ANY
すべてのマウス・イベント・タイプに共通のスーパータイプ。
|
static EventType<MouseEvent> |
DRAG_DETECTED
このイベントは、ドラッグ・ジェスチャのソースとして識別されたノードに配信されます。
|
static EventType<MouseEvent> |
MOUSE_CLICKED
このイベントは、マウス・ボタンがクリックされた(同じノード上で押されて放された)ときに発生します。
|
static EventType<MouseEvent> |
MOUSE_DRAGGED
このイベントは、ボタンを押した状態でマウスが移動されたときに発生します。
|
static EventType<MouseEvent> |
MOUSE_ENTERED
このイベントは、マウスがノードに入ったときに発生します。
|
static EventType<MouseEvent> |
MOUSE_ENTERED_TARGET
このイベントは、マウスがノードに入ったときに発生します。
|
static EventType<MouseEvent> |
MOUSE_EXITED
このイベントは、マウスがノードから出たときに発生します。
|
static EventType<MouseEvent> |
MOUSE_EXITED_TARGET
このイベントは、マウスがノードから出たときに発生します。
|
static EventType<MouseEvent> |
MOUSE_MOVED
このイベントは、ボタンを押さずにノード内でマウスが移動されたときに発生します。
|
static EventType<MouseEvent> |
MOUSE_PRESSED
このイベントは、マウス・ボタンが押されたときに発生します。
|
static EventType<MouseEvent> |
MOUSE_RELEASED
このイベントは、マウス・ボタンが放されたときに発生します。
|
consumed、eventType、NULL_SOURCE_TARGET、target
source
コンストラクタと説明 |
---|
MouseEvent(EventType<? extends MouseEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, boolean stillSincePress, PickResult pickResult)
nullのソースとターゲットを使用した新しいMouseEventイベントを構築します。
|
MouseEvent(Object source, EventTarget target, EventType<? extends MouseEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, boolean stillSincePress, PickResult pickResult)
新しいMouseEventイベントを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
MouseEvent |
copyFor(Object newSource, EventTarget newTarget)
該当するイベントを別のソースおよびターゲット用にコピーします。
|
MouseEvent |
copyFor(Object newSource, EventTarget newTarget, EventType<? extends MouseEvent> eventType)
指定のフィールドが置換された特定のイベントのコピーを作成します。
|
static MouseDragEvent |
copyForMouseDragEvent(MouseEvent e, Object source, EventTarget target, EventType<MouseDragEvent> type, Object gestureSource, PickResult pickResult)
MouseDragEventタイプのマウス・イベントのコピーを作成します。
|
MouseButton |
getButton()
このイベントの原因となったマウス・ボタン(ある場合)。
|
int |
getClickCount()
このイベントに関連付けられたマウス・クリック数を返します。
|
EventType<? extends MouseEvent> |
getEventType()
このイベントのイベント・タイプを取得します。
|
PickResult |
getPickResult()
選択内容に関する情報を返します。
|
double |
getSceneX()
MouseEventのソースが含まれている
Scene の原点に対するイベントの相対水平位置を返します。 |
double |
getSceneY()
MouseEventのソースが含まれている
Scene の原点に対するイベントの相対垂直位置を返します。 |
double |
getScreenX()
イベントの水平方向の絶対位置を返します。
|
double |
getScreenY()
イベントの垂直方向の絶対位置を返します。
|
double |
getX()
MouseEventのソースの原点に対するイベントの相対水平位置。
|
double |
getY()
MouseEventのソースの原点に対するイベントの相対垂直位置。
|
double |
getZ()
MouseEventのソースの原点に対して相対的なイベントの深度位置。
|
boolean |
isAltDown()
このイベントでAlt修飾子が押されたかどうか。
|
boolean |
isControlDown()
このイベントでCtrl修飾子が押されたかどうか。
|
boolean |
isDragDetect()
このイベントに続いて
DRAG_DETECTED イベントが発生するかどうかを判断します。 |
boolean |
isMetaDown()
このイベントでMeta修飾子が押されたかどうか。
|
boolean |
isMiddleButtonDown()
中央ボタン(ボタン2)が現在押下されている場合は
true を返します。 |
boolean |
isPopupTrigger()
このマウス・イベントがプラットフォームのポップアップ・メニュー・トリガー・イベントである場合は
true を返します。 |
boolean |
isPrimaryButtonDown()
プライマリ・ボタン(ボタン1、通常左側)が現在押下されている場合は
true を返します。 |
boolean |
isSecondaryButtonDown()
セカンダリ・ボタン(ボタン1、通常右側)が現在押下されている場合は
true を返します。 |
boolean |
isShiftDown()
このイベントでShift修飾子が押されたかどうか。
|
boolean |
isShortcutDown()
このイベントでホスト・プラットフォームの一般的なShortcut修飾子が押されたかどうかを返します。
|
boolean |
isStillSincePress()
このイベントの直前に発生した押下イベント以降、システム提供のヒステリシス領域にマウス・カーソルが残っているかどうかを示します。
|
boolean |
isSynthesized()
マウスやトラック・パッドのような通常のマウス・イベント・ソース・デバイスではなく、タッチ画面を使用したことによりこのイベントが合成されたかどうかを示します。
|
void |
setDragDetect(boolean dragDetect)
ドラッグ検出動作を強化します。
|
String |
toString()
この
MouseEvent オブジェクトの文字列表現を返します。 |
getSource
public static final EventType<MouseEvent> ANY
public static final EventType<MouseEvent> MOUSE_PRESSED
public static final EventType<MouseEvent> MOUSE_RELEASED
public static final EventType<MouseEvent> MOUSE_CLICKED
public static final EventType<MouseEvent> MOUSE_ENTERED_TARGET
MOUSE_ENTERED
イベント・ハンドラを使用する必要があります。MouseEvent
public static final EventType<MouseEvent> MOUSE_ENTERED
MOUSE_ENTERED_TARGET
を使用する必要があります。MouseEvent
public static final EventType<MouseEvent> MOUSE_EXITED_TARGET
MOUSE_EXITED
イベント・ハンドラを使用する必要があります。MouseEvent
public static final EventType<MouseEvent> MOUSE_EXITED
MOUSE_EXITED_TARGET
を使用する必要があります。MouseEvent
public static final EventType<MouseEvent> MOUSE_MOVED
public static final EventType<MouseEvent> MOUSE_DRAGGED
public static final EventType<MouseEvent> DRAG_DETECTED
startDragAndDrop()
メソッドのstartFullDrag()
を呼び出すことによって)完全な押下、ドラッグ、解放ジェスチャまたはドラッグ・アンド・ドロップ・ジェスチャを開始できる唯一の場所です。いずれも呼び出さなかった場合は、単純な押下、ドラッグ、解放ジェスチャが続行されます。
プラットフォーム固有の距離しきい値を超えてマウスをドラッグすると、このイベントが生成されます。MOUSE_PRESSEDまたはMOUSE_DRAGGEDイベントに対してsetDragDetect
メソッドを呼び出すことによって、この動作を変更できます。
public MouseEvent(EventType<? extends MouseEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, boolean stillSincePress, PickResult pickResult)
eventType
- イベントのタイプ。x
- シーンに関連するx。y
- シーンに関連するy。screenX
- 画面に対して相対的なx座標。screenY
- 画面に対して相対的なy座標。button
- 使用されたマウス・ボタンclickCount
- クリック・カウント数shiftDown
- Shift修飾子が押された場合はtrueです。controlDown
- Ctrl修飾子が押された場合はtrueです。altDown
- Alt修飾子が押された場合はtrueです。metaDown
- Meta修飾子が押された場合はtrueです。primaryButtonDown
- プライマリ・ボタンが押下された場合はtrue。middleButtonDown
- 中央ボタンが押下された場合はtrue。secondaryButtonDown
- セカンダリ・ボタンが押下された場合はtrue。synthesized
- このイベントが合成された場合popupTrigger
- このイベントが現在のプラットフォームのポップアップ・トリガーを示すかどうかstillSincePress
- isStillSincePress()
を参照pickResult
- 選択結果。nullに設定でき、その場合は、シーン座標に基づいて、追加の値のない2D選択結果が構築されます。public MouseEvent(Object source, EventTarget target, EventType<? extends MouseEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, boolean stillSincePress, PickResult pickResult)
source
- イベントのソース。nullに設定できます。target
- イベントのターゲット。nullに設定できます。eventType
- イベントのタイプ。x
- ソースを基準としたx。ソース == nullであるか、ソースがノードでない場合は、シーン座標内にある必要があります。y
- ソースを基準としたy。ソース == nullであるか、ソースがノードでない場合は、シーン座標内にある必要があります。screenX
- 画面に対して相対的なx座標。screenY
- 画面に対して相対的なy座標。button
- 使用されたマウス・ボタンclickCount
- クリック・カウント数shiftDown
- Shift修飾子が押された場合はtrueです。controlDown
- Ctrl修飾子が押された場合はtrueです。altDown
- Alt修飾子が押された場合はtrueです。metaDown
- Meta修飾子が押された場合はtrueです。primaryButtonDown
- プライマリ・ボタンが押下された場合はtrue。middleButtonDown
- 中央ボタンが押下された場合はtrue。secondaryButtonDown
- セカンダリ・ボタンが押下された場合はtrue。synthesized
- このイベントが合成された場合popupTrigger
- このイベントが現在のプラットフォームのポップアップ・トリガーを示すかどうかstillSincePress
- isStillSincePress()
を参照pickResult
- 選択結果。nullにでき、この場合は、追加の値がない2Dの選択結果が、シーン座標とターゲットに基づいて作成されます。public EventType<? extends MouseEvent> getEventType()
Event
Event
クラスの複数のオブジェクトは、異なるイベント・タイプを持つことができます。これらのイベント・タイプでは、発生するイベントの種類をさらに指定します。getEventType
、クラス: InputEvent
public MouseEvent copyFor(Object newSource, EventTarget newTarget)
public MouseEvent copyFor(Object newSource, EventTarget newTarget, EventType<? extends MouseEvent> eventType)
source
- コピーされたイベントの新しいソースtarget
- コピーされたイベントの新しいターゲットeventType
- 新しいイベント・タイプpublic static MouseDragEvent copyForMouseDragEvent(MouseEvent e, Object source, EventTarget target, EventType<MouseDragEvent> type, Object gestureSource, PickResult pickResult)
e
- コピー対象のマウス・イベントsource
- コピーされたイベントの新しいソースtarget
- コピーされたイベントの新しいターゲットtype
- 新しいMouseDragEventタイプgestureSource
- ジェスチャの新しいソースpickResult
- 選択結果。nullに設定でき、その場合は、シーン座標に基づいて、追加の値のない2D選択結果が構築されます。public boolean isDragDetect()
DRAG_DETECTED
イベントが発生するかどうかを判断します。MOUSE_PRESSED
およびMOUSE_DRAGGED
イベントに対してのみ有効です。DRAG_DETECTED
イベントが発生する場合はtruepublic void setDragDetect(boolean dragDetect)
DRAG_DETECTED
イベントが発生するかどうかを示します。MOUSE_PRESSED
およびMOUSE_DRAGGED
イベントに対してのみ有効です。dragDetect
- 続いてDRAG_DETECTED
イベントが発生するかどうかpublic final double getX()
public final double getY()
public final double getZ()
public final double getScreenX()
public final double getScreenY()
public final double getSceneX()
Scene
の原点に対するイベントの相対水平位置を返します。ノードがScene
内にない場合は、MouseEventのノードの最もルートに近い親のboundsInParentに対する相対値になります。3Dシーンでは、これは投影変換の適用後にフラットな座標を表します。Scene
の原点に対するイベントの相対水平位置public final double getSceneY()
Scene
の原点に対するイベントの相対垂直位置を返します。ノードがScene
内にない場合は、MouseEventのノードの最もルートに近い親のboundsInParentに対する相対値になります。3Dシーンでは、これは投影変換の適用後にフラットな座標を表します。Scene
の原点に対するイベントの相対垂直位置public final MouseButton getButton()
public final int getClickCount()
public final boolean isStillSincePress()
ノード上でマウスの押下と解放の両方が行われると、押下から解放までのマウスの移動量に関係なく、そのノードに対してクリック・イベントが生成されます。単純なクリックとマウス・ドラッグでノードの反応を変える場合は、システムが提供する短い距離のしきい値に基づいてクリックとドラッグを区別する必要があります(クリック中の意図しないわずかな動きはよく発生します)。このメソッドからtrue
が返された場合はすべてのドラッグを無視し、このメソッドからfalse
が返された場合はすべてのクリックを無視するようにすると、このことを簡単に実現できます。
public final boolean isShiftDown()
public final boolean isControlDown()
public final boolean isAltDown()
public final boolean isMetaDown()
public boolean isSynthesized()
public final boolean isShortcutDown()
Ctrl
、MacではMeta
(コマンド・キー)です。true
、それ以外の場合はfalse
です。public final boolean isPopupTrigger()
true
を返します。
注: ポップアップ・メニューのトリガーはシステムによって異なります。したがって、プラットフォーム間で適切に機能させるには、onMousePressed
とmouseReleased
の両方でpopupTrigger
をチェックする必要があります。
true
public final boolean isPrimaryButtonDown()
true
を返します。このメソッドはプライマリ・ボタンが押下されたかどうかを示すもので、このイベントの原因となったボタン押下を示すgetButton()
メソッドとは異なることに注意してください。true
public final boolean isSecondaryButtonDown()
true
を返します。このメソッドはセカンダリ・ボタンが押下されたかどうかを示すもので、このイベントの原因となったボタン押下を示すgetButton()
メソッドとは異なることに注意してください。true
public final boolean isMiddleButtonDown()
true
を返します。このメソッドは中央ボタンが押下されたかどうかを示すもので、このイベントの原因となったボタン押下を示すgetButton()
メソッドとは異なることに注意してください。true
public String toString()
MouseEvent
オブジェクトの文字列表現を返します。toString
、クラス: EventObject
MouseEvent
オブジェクトの文字列表現public final PickResult getPickResult()
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.