- すべての実装されたインタフェース:
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 int
Cursor
をデフォルト(ドロップなし)のCursor
に変更するべきであることを示す、updateCurrentCursor()によって使用されるint
。protected static final int
Cursor
がDropTarget
に入ったことを示す、updateCurrentCursor()によって使用されるint
。protected static final int
Cursor
が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
をそれに渡します。void
dragEnter
(DragSourceDragEvent dsde) このDragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragEnter
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。void
dragExit
(DragSourceEvent dse) このDragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragExit
を呼び出し、指定されたDragSourceEvent
をそれに渡します。void
このDragSourceContext
に関連付けられたDragSource
に登録されたDragSourceMotionListener
でdragMouseMoved
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。void
dragOver
(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
に設定します。void
Transferable
のDataFlavor
が変更されたことをピアに通知します。protected void
updateCurrentCursor
(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
-Transferable
dsl
-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
public Component getComponent()このDragSourceContext
に関連付けられたComponent
を返します。- 戻り値:
- ドラッグを開始した
Component
-
getTrigger
public DragGestureEvent getTrigger()ドラッグを最初にトリガーしたDragGestureEvent
を返します。- 戻り値:
- ドラッグをトリガーしたEvent
-
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
のいずれか
-