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, 2013, Oracle and/or its affiliates. All rights reserved.