- すべての実装されたインタフェース:
DragSourceListener,DragSourceMotionListener,Serializable,EventListener
DragSourceContextクラスは、ドラッグ&ドロップ・プロトコルのイニシエータ側の管理を担当します。 特に、DragSourceListenersおよびDragSourceMotionListenersへのドラッグ・イベント通知を管理し、ドラッグ操作のソース・データを表すTransferableを提供する役割を果たします。
DragSourceContext自体がDragSourceListenerおよびDragSourceMotionListenerインタフェースを実装していることに注意してください。 これは、DragSourceで作成されたプラットフォーム・ピア(DragSourceContextPeerインスタンス)が、DragSourceContextに進行中の操作の状態変更を通知できるようにするためです。 これにより、DragSourceContextオブジェクトは、プラットフォームとドラッグ操作のイニシエータによって提供されたリスナーの間にDragSourceContext自体を挿入できます。
デフォルトでは、DragSourceContextはドラッグ&ドロップ操作の現在の状態に応じてカーソルを設定します。 たとえば、ユーザーが移動アクションを選択し、ポインタが移動アクションを受け入れるターゲットの上にある場合は、デフォルトの移動カーソルが表示されます。 ポインタが転送を受け入れない領域の上にある場合は、デフォルトの「ドロップなし」のカーソルが表示されます。
このデフォルトの処理メカニズムは、setCursor(java.awt.Cursor)メソッドによってカスタム・カーソルが設定されているときは無効になっています。 デフォルトの処理が無効になっている場合、DragSourceイベントを待機し、setCursor()メソッドを呼び出すことによってカーソルを最新の状態に維持するのは開発者の役割です。 あるいは、DragSourceクラスとDragSourceContextクラスのカスタム実装を提供することによって、カスタム・カーソルの動作を実現することもできます。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明protected static final intユーザー操作が変更されたことを示す、updateCurrentCursor()によって使用されるint。protected static final intCursorをデフォルト(ドロップなし)のCursorに変更するべきであることを示す、updateCurrentCursor()によって使用されるint。protected static final intCursorがDropTargetに入ったことを示す、updateCurrentCursor()によって使用されるint。protected static final intCursorがDropTargetの上にあることを示す、updateCurrentCursor()によって使用されるint。 -
コンストラクタのサマリー
コンストラクタコンストラクタ説明DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl) このコンストラクタは、DragSourceから呼び出され、このドラッグのDragSourceContextPeer、ドラッグをトリガーしたDragGestureEvent、ドラッグに使用する初期のCursor、ドラッグの実行中に表示する(オプションの)Image、トリガー・イベントの瞬間におけるホット・スポットからのImage原点のオフセット、Transferable対象データ、およびドラッグ&ドロップ操作中に使用するDragSourceListenerを使用して、新しいDragSourceContextを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明voidまだ追加されていない場合は、このDragSourceContextにDragSourceListenerを追加します。voidこのDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragDropEndを呼び出し、指定されたDragSourceDropEventをそれに渡します。voiddragEnter(DragSourceDragEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragEnterを呼び出し、指定されたDragSourceDragEventをそれに渡します。voiddragExit(DragSourceEvent dse) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragExitを呼び出し、指定されたDragSourceEventをそれに渡します。voidこのDragSourceContextに関連付けられたDragSourceに登録されたDragSourceMotionListenerでdragMouseMovedを呼び出し、指定されたDragSourceDragEventをそれに渡します。voiddragOver(DragSourceDragEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragOverを呼び出し、指定されたDragSourceDragEventをそれに渡します。voidこのDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdropActionChangedを呼び出し、指定されたDragSourceDragEventをそれに渡します。このDragSourceContextに関連付けられたComponentを返します。現在のカスタム・ドラッグCursorを返します。このDragSourceContextをインスタンス化したDragSourceを返します。intこのDragSourceContextに関連付けられたドラッグ操作のドラッグ・ソースでサポートされている一連のドロップ・アクションを表すDnDConstantsの、ビット単位のマスクを返します。このDragSourceContextに関連付けられたTransferableを返します。ドラッグを最初にトリガーしたDragGestureEventを返します。voidこのDragSourceContextから指定されたDragSourceListenerを削除します。voidこのドラッグ操作のカスタム・カーソルを指定されたCursorに設定します。voidTransferableのDataFlavorが変更されたことをピアに通知します。protected voidupdateCurrentCursor(int sourceAct, int targetAct, int status) デフォルトのドラッグ・カーソルの動作がアクティブな場合、このメソッドは、ドラッグ・ソースでサポートされる指定されたアクション、ドロップ・ターゲット・アクション、およびステータスにデフォルトのドラッグ・カーソルを設定します。そうでない場合、このメソッドは何も行いません。
-
フィールド詳細
-
DEFAULT
protected static final int DEFAULTCursorをデフォルト(ドロップなし)のCursorに変更するべきであることを示す、updateCurrentCursor()によって使用されるint。- 関連項目:
-
ENTER
protected static final int ENTERCursorがDropTargetに入ったことを示す、updateCurrentCursor()によって使用されるint。- 関連項目:
-
OVER
protected static final int OVERCursorがDropTargetの上にあることを示す、updateCurrentCursor()によって使用されるint。- 関連項目:
-
CHANGED
protected static final int CHANGEDユーザー操作が変更されたことを示す、updateCurrentCursor()によって使用されるint。- 関連項目:
-
-
コンストラクタの詳細
-
DragSourceContext
public DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl) このコンストラクタは、DragSourceから呼び出され、このドラッグのDragSourceContextPeer、ドラッグをトリガーしたDragGestureEvent、ドラッグに使用する初期のCursor、ドラッグの実行中に表示する(オプションの)Image、トリガー・イベントの瞬間におけるホット・スポットからのImage原点のオフセット、Transferable対象データ、およびドラッグ&ドロップ操作中に使用するDragSourceListenerを使用して、新しいDragSourceContextを作成します。
DragSourceContextPeerがnullの場合は、NullPointerExceptionがスローされます。
DragGestureEventがnullの場合は、NullPointerExceptionがスローされます。
Cursorがnullの場合、例外はスローされず、このドラッグ操作に対してデフォルトのドラッグ・カーソルの動作がアクティブになります。
Imageがnullの場合、例外はスローされません。Imageがnullでなく、オフセットがnull NullPointerExceptionの場合はスローされます。
Transferableがnullの場合は、NullPointerExceptionがスローされます。
DragSourceListenerがnullの場合、例外はスローされません。- パラメータ:
trigger- トリガー・イベントdragCursor- このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、クラス・レベルのドキュメントを参照dragImage- ドラッグするImage(またはnull)offset- トリガー・イベントの瞬間におけるホット・スポットからのイメージ原点のオフセットt-Transferabledsl-DragSourceListener- 例外:
IllegalArgumentException- トリガー・イベントに関連付けられたComponentがnullの場合。IllegalArgumentException- トリガー・イベントのDragSourceがnullの場合。IllegalArgumentException- トリガー・イベントのドラッグ・アクションがDnDConstants.ACTION_NONEの場合。IllegalArgumentException- トリガー・イベントに関連付けられたDragGestureRecognizerのソース・アクションがDnDConstants.ACTION_NONEに等しい場合。NullPointerException- dscp、trigger、tのいずれかがnullの場合、またはdragImageがnull以外であり、かつオフセットがnullの場合
-
-
メソッドの詳細
-
getDragSource
public DragSource getDragSource()このDragSourceContextをインスタンス化したDragSourceを返します。- 戻り値:
- この
DragSourceContextをインスタンス化したDragSource
-
getComponent
-
getTrigger
-
getSourceActions
public int getSourceActions()このDragSourceContextに関連付けられたドラッグ操作のドラッグ・ソースでサポートされている一連のドロップ・アクションを表すDnDConstantsの、ビット単位のマスクを返します。- 戻り値:
- ドラッグ・ソースでサポートされているドロップ・アクション
-
setCursor
public void setCursor(Cursor c) このドラッグ操作のカスタム・カーソルを指定されたCursorに設定します。 指定されたCursorがnullの場合は、このドラッグ操作に対してデフォルトのドラッグ・カーソルの動作がアクティブになり、それ以外の場合は非アクティブになります。- パラメータ:
c- このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理の詳細は、クラス・レベルのドキュメントを参照
-
getCursor
public Cursor getCursor()現在のカスタム・ドラッグCursorを返します。- 戻り値:
- 現在のカスタム・ドラッグ
Cursorが設定されている場合は、nullが返されます。 - 関連項目:
-
addDragSourceListener
public void addDragSourceListener(DragSourceListener dsl) throws TooManyListenersException まだ追加されていない場合は、このDragSourceContextにDragSourceListenerを追加します。DragSourceListenerがすでに存在する場合、このメソッドはTooManyListenersExceptionをスローします。- パラメータ:
dsl- 追加するDragSourceListener。nullは禁止されていないが、パラメータとして受け付けられないことに注意。- 例外:
TooManyListenersException-DragSourceListenerがすでに追加されている場合
-
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl) このDragSourceContextから指定されたDragSourceListenerを削除します。- パラメータ:
dsl- 削除するDragSourceListener。nullは禁止されていないが、パラメータとして受け付けられないことに注意。
-
transferablesFlavorsChanged
public void transferablesFlavorsChanged()TransferableのDataFlavorが変更されたことをピアに通知します。 -
dragEnter
public void dragEnter(DragSourceDragEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragEnterを呼び出し、指定されたDragSourceDragEventをそれに渡します。- 定義:
dragEnter、インタフェースDragSourceListener- パラメータ:
dsde-DragSourceDragEvent
-
dragOver
public void dragOver(DragSourceDragEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragOverを呼び出し、指定されたDragSourceDragEventをそれに渡します。- 定義:
dragOver、インタフェースDragSourceListener- パラメータ:
dsde-DragSourceDragEvent
-
dragExit
public void dragExit(DragSourceEvent dse) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragExitを呼び出し、指定されたDragSourceEventをそれに渡します。- 定義:
dragExit、インタフェースDragSourceListener- パラメータ:
dse-DragSourceEvent
-
dropActionChanged
public void dropActionChanged(DragSourceDragEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdropActionChangedを呼び出し、指定されたDragSourceDragEventをそれに渡します。- 定義:
dropActionChanged、インタフェースDragSourceListener- パラメータ:
dsde-DragSourceDragEvent
-
dragDropEnd
public void dragDropEnd(DragSourceDropEvent dsde) このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerでdragDropEndを呼び出し、指定されたDragSourceDropEventをそれに渡します。- 定義:
dragDropEnd、インタフェースDragSourceListener- パラメータ:
dsde-DragSourceDropEvent
-
dragMouseMoved
public void dragMouseMoved(DragSourceDragEvent dsde) このDragSourceContextに関連付けられたDragSourceに登録されたDragSourceMotionListenerでdragMouseMovedを呼び出し、指定されたDragSourceDragEventをそれに渡します。- 定義:
dragMouseMoved、インタフェースDragSourceMotionListener- パラメータ:
dsde-DragSourceDragEvent- 導入されたバージョン:
- 1.4
-
getTransferable
public Transferable getTransferable()このDragSourceContextに関連付けられたTransferableを返します。- 戻り値:
Transferable
-
updateCurrentCursor
protected void updateCurrentCursor(int sourceAct, int targetAct, int status) デフォルトのドラッグ・カーソルの動作がアクティブな場合、このメソッドは、ドラッグ・ソースでサポートされる指定されたアクション、ドロップ・ターゲット・アクション、およびステータスにデフォルトのドラッグ・カーソルを設定します。そうでない場合、このメソッドは何も行いません。- パラメータ:
sourceAct- ドラッグ・ソースでサポートされているアクションtargetAct- ドロップ・ターゲット・アクションstatus- フィールドDEFAULT、ENTER、OVER、CHANGEDのいずれか
-