public class DragSourceContext extends Object implements DragSourceListener, DragSourceMotionListener, Serializable
DragSourceContext
クラスは、ドラッグ&ドロップ・プロトコルのイニシエータ側の管理を担当します。特に、DragSourceListenersおよびDragSourceMotionListenersへのドラッグ・イベント通知を管理し、ドラッグ操作のソース・データを表すTransferable
を提供する役割を果たします。
DragSourceContext
自体がDragSourceListener
およびDragSourceMotionListener
インタフェースを実装していることに注意してください。これは、DragSource
で作成されたプラットフォーム・ピア(DragSourceContextPeer
インスタンス)が、DragSourceContext
に進行中の操作の状態変更を通知できるようにするためです。これにより、DragSourceContext
オブジェクトは、プラットフォームとドラッグ操作のイニシエータによって提供されたリスナーの間にDragSourceContext自体を挿入できます。
デフォルトでは、DragSourceContext
はドラッグ&ドロップ操作の現在の状態に応じてカーソルを設定します。たとえば、ユーザーが移動アクションを選択し、ポインタが移動アクションを受け入れるターゲットの上にある場合は、デフォルトの移動カーソルが表示されます。ポインタが転送を受け入れない領域の上にある場合は、デフォルトの「ドロップなし」のカーソルが表示されます。
このデフォルトの処理メカニズムは、setCursor(java.awt.Cursor)
メソッドによってカスタム・カーソルが設定されているときは無効になっています。デフォルトの処理が無効になっている場合、DragSource
イベントを待機し、setCursor()
メソッドを呼び出すことによってカーソルを最新の状態に維持するのは開発者の役割です。あるいは、DragSource
クラスとDragSourceContext
クラスのカスタム実装を提供することによって、カスタム・カーソルの動作を実現することもできます。
DragSourceListener
, DragSourceMotionListener
, DnDConstants
, 直列化された形式修飾子と型 | フィールドと説明 |
---|---|
protected static int |
CHANGED
ユーザー操作が変更されたことを示す、updateCurrentCursor()によって使用される
int 。 |
protected static int |
DEFAULT
Cursor をデフォルト(ドロップなし)のCursor に変更するべきであることを示す、updateCurrentCursor()によって使用されるint 。 |
protected static int |
ENTER
Cursor がDropTarget に入ったことを示す、updateCurrentCursor()によって使用されるint 。 |
protected static int |
OVER
Cursor がDropTarget の上にあることを示す、updateCurrentCursor()によって使用されるint 。 |
コンストラクタと説明 |
---|
DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
このコンストラクタは、
DragSource から呼び出され、このドラッグのDragSourceContextPeer 、ドラッグをトリガーしたDragGestureEvent 、ドラッグに使用する初期のCursor 、ドラッグの実行中に表示する(オプションの) Image 、トリガー・イベントの瞬間におけるホット・スポットからのImage 原点のオフセット、Transferable 対象データ、およびドラッグ&ドロップ操作中に使用するDragSourceListener を使用して、新しいDragSourceContext を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void |
addDragSourceListener(DragSourceListener dsl)
まだ追加されていない場合は、この
DragSourceContext にDragSourceListener を追加します。 |
void |
dragDropEnd(DragSourceDropEvent dsde)
この
DragSourceContext とそれに関連付けられたDragSource に登録されたDragSourceListener でdragDropEnd を呼び出し、指定されたDragSourceDropEvent をそれに渡します。 |
void |
dragEnter(DragSourceDragEvent dsde)
この
DragSourceContext とそれに関連付けられたDragSource に登録されたDragSourceListener でdragEnter を呼び出し、指定されたDragSourceDragEvent をそれに渡します。 |
void |
dragExit(DragSourceEvent dse)
この
DragSourceContext とそれに関連付けられたDragSource に登録されたDragSourceListener でdragExit を呼び出し、指定されたDragSourceEvent をそれに渡します。 |
void |
dragMouseMoved(DragSourceDragEvent dsde)
この
DragSourceContext に関連付けられたDragSource に登録されたDragSourceMotionListener でdragMouseMoved を呼び出し、指定されたDragSourceDragEvent をそれに渡します。 |
void |
dragOver(DragSourceDragEvent dsde)
この
DragSourceContext とそれに関連付けられたDragSource に登録されたDragSourceListener でdragOver を呼び出し、指定されたDragSourceDragEvent をそれに渡します。 |
void |
dropActionChanged(DragSourceDragEvent dsde)
この
DragSourceContext とそれに関連付けられたDragSource に登録されたDragSourceListener でdropActionChanged を呼び出し、指定されたDragSourceDragEvent をそれに渡します。 |
Component |
getComponent()
この
DragSourceContext に関連付けられたComponent を返します。 |
Cursor |
getCursor()
現在のドラッグ
Cursor を返します。 |
DragSource |
getDragSource()
この
DragSourceContext をインスタンス化したDragSource を返します。 |
int |
getSourceActions()
この
DragSourceContext に関連付けられたドラッグ操作のドラッグ・ソースでサポートされている一連のドロップ・アクションを表すDnDConstants の、ビット単位のマスクを返します。 |
Transferable |
getTransferable()
この
DragSourceContext に関連付けられたTransferable を返します。 |
DragGestureEvent |
getTrigger()
ドラッグを最初にトリガーした
DragGestureEvent を返します。 |
void |
removeDragSourceListener(DragSourceListener dsl)
この
DragSourceContext から指定されたDragSourceListener を削除します。 |
void |
setCursor(Cursor c)
このドラッグ操作のカーソルを指定された
Cursor に設定します。 |
void |
transferablesFlavorsChanged()
Transferable のDataFlavor が変更されたことをピアに通知します。 |
protected void |
updateCurrentCursor(int sourceAct, int targetAct, int status)
デフォルトのドラッグ・カーソルの動作がアクティブな場合、このメソッドは、ドラッグ・ソースでサポートされる指定されたアクション、ドロップ・ターゲット・アクション、およびステータスにデフォルトのドラッグ・カーソルを設定します。そうでない場合、このメソッドは何も行いません。
|
protected static final int DEFAULT
Cursor
をデフォルト(ドロップなし)のCursor
に変更するべきであることを示す、updateCurrentCursor()によって使用されるint
。protected static final int ENTER
Cursor
がDropTarget
に入ったことを示す、updateCurrentCursor()によって使用されるint
。protected static final int OVER
Cursor
がDropTarget
の上にあることを示す、updateCurrentCursor()によって使用されるint
。protected static final int CHANGED
int
。public DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, 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
の場合、例外はスローされません。dscp
- このドラッグのDragSourceContextPeer
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の場合public DragSource getDragSource()
DragSourceContext
をインスタンス化したDragSource
を返します。DragSourceContext
をインスタンス化したDragSource
public Component getComponent()
DragSourceContext
に関連付けられたComponent
を返します。Component
public DragGestureEvent getTrigger()
DragGestureEvent
を返します。public int getSourceActions()
DragSourceContext
に関連付けられたドラッグ操作のドラッグ・ソースでサポートされている一連のドロップ・アクションを表すDnDConstants
の、ビット単位のマスクを返します。public void setCursor(Cursor c)
Cursor
に設定します。指定されたCursor
がnull
の場合は、このドラッグ操作に対してデフォルトのドラッグ・カーソルの動作がアクティブになり、それ以外の場合は非アクティブになります。c
- このドラッグ操作の初期のCursor
。デフォルトのカーソル処理の場合はnull
。ドラッグ&ドロップ中のカーソル処理の詳細は、クラス・レベルのドキュメントを参照public Cursor getCursor()
Cursor
を返します。
Cursor
public void addDragSourceListener(DragSourceListener dsl) throws TooManyListenersException
DragSourceContext
にDragSourceListener
を追加します。DragSourceListener
がすでに存在する場合、このメソッドはTooManyListenersException
をスローします。
dsl
- 追加するDragSourceListener
。null
は禁止されていないが、パラメータとして受け付けられないことに注意。
TooManyListenersException
- DragSourceListener
がすでに追加されている場合public void removeDragSourceListener(DragSourceListener dsl)
DragSourceContext
から指定されたDragSourceListener
を削除します。dsl
- 削除するDragSourceListener
。null
は禁止されていないが、パラメータとして受け付けられないことに注意。public void transferablesFlavorsChanged()
Transferable
のDataFlavor
が変更されたことをピアに通知します。public void dragEnter(DragSourceDragEvent dsde)
DragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragEnter
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。dragEnter
、インタフェース: DragSourceListener
dsde
- DragSourceDragEvent
public void dragOver(DragSourceDragEvent dsde)
DragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragOver
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。dragOver
、インタフェース: DragSourceListener
dsde
- DragSourceDragEvent
public void dragExit(DragSourceEvent dse)
DragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragExit
を呼び出し、指定されたDragSourceEvent
をそれに渡します。dragExit
、インタフェース: DragSourceListener
dse
- DragSourceEvent
public void dropActionChanged(DragSourceDragEvent dsde)
DragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdropActionChanged
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。dropActionChanged
、インタフェース: DragSourceListener
dsde
- DragSourceDragEvent
public void dragDropEnd(DragSourceDropEvent dsde)
DragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
でdragDropEnd
を呼び出し、指定されたDragSourceDropEvent
をそれに渡します。dragDropEnd
、インタフェース: DragSourceListener
dsde
- DragSourceDropEvent
public void dragMouseMoved(DragSourceDragEvent dsde)
DragSourceContext
に関連付けられたDragSource
に登録されたDragSourceMotionListener
でdragMouseMoved
を呼び出し、指定されたDragSourceDragEvent
をそれに渡します。dragMouseMoved
、インタフェース: DragSourceMotionListener
dsde
- DragSourceDragEvent
public Transferable getTransferable()
DragSourceContext
に関連付けられたTransferable
を返します。Transferable
protected void updateCurrentCursor(int sourceAct, int targetAct, int status)
sourceAct
- ドラッグ・ソースでサポートされているアクションtargetAct
- ドロップ・ターゲット・アクションstatus
- フィールドDEFAULT
、ENTER
、OVER
、CHANGED
のいずれか バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.