パッケージ java.awt.dnd
このパッケージは、Javaでドラッグ&ドロップ操作を行うのに必要なクラスおよびインタフェースを定義します。 ドラッグ・ソースとドロップ・ターゲットのクラス、およびドラッグされているデータを転送するためのイベントを定義します。 このパッケージはまた、ドラッグ&ドロップ操作中にユーザーに視覚的なフィード・バックを提供する手段を備えています。
標準的なドラッグ&ドロップ操作は次の状態に分解することができます(必ずしも連続していません)。
Transferable
(転送可能になりうる)データのドラッグ&ドロップを開始するために、GUIの表現要素(Component
)に関連付けられたDragSource
(ドラッグ・ソース)が作成されます。Transferable
データ型を消費できる可能性のある、GUIの表現要素(Component)に関連付けられた1つ以上のDropTarget
が生成または削除されます。DragGestureRecognizer
がDragSource
から取得され、ユーザーのドラッグ開始ジェスチャをComponent
上で追跡し識別するために、Component
と関連付けられます。- ユーザーが
Component
上でドラッグ・ジェスチャを行うと、登録されたDragGestureRecognizer
がそれを検出し、そのDragGestureListener
に通知します。ノート: このAPIでは、ドラッグ&ドロップ操作の開始要因がユーザーによる物理的なジェスチャであると一貫して記載していますが、これは、
DragSource
が適切に実装されている場合のプログラムによって開始されたDnD操作を除外するものではありません。 このパッケージには、マウス・デバイス・ジェスチャを認識するための抽象クラスMouseDragGestureRecognizer
が含まれています。 その他の入力デバイスや、Component
クラスの特定のセマンティックスをサポートするために、プラットフォームによってその他のabstractサブクラスが提供されることがあります。 DragGestureListener
によって、DragSource
がユーザーの代わりにドラッグ&ドロップ操作を開始します。このとき、GUI Cursorが動画化されたり、操作の対象である項目のImage
が描画されたりすることがあります。- ユーザー・ジェスチャが、
DropTarget
が関連付けられているGUIのComponent
の上を移動すると、サポートされる操作および関連するデータ型に基づいて、DragSource
は「ドラッグオーバー」フィード・バック効果を提供するために通知を受信し、DropTarget
は「ドラッグ・アンダー」フィード・バック効果を提供するために通知を受け取ります。
ジェスチャ自体は、論理カーソルをGUI階層全体にわたって移動し、GUI Componentの幾何学的図形と交差します。これにより、論理的な「ドラッグ」カーソルがComponent
とそれに関連付けられたDropTarget
に入り、横切り、その後離れる可能性があります。
DragSource
オブジェクトはユーザーに「ドラッグオーバー」フィードバックを示します。通常の場合、論理カーソルに関連したGUI Cursor
を動画化します。
DropTarget
オブジェクトは、通常は関連付けられたGUI Component
のGUI Cursorにアニメーションを描画することによって、「ドラッグ・アンダー」フィード・バックをユーザーに示します。
フィードバック結果の判定、および必ずどちらかが発生するデータ変換の最終的な成功または失敗は、次のようにパラメータ化されます。
- ユーザーが選択し、
DragSource
とDropTarget
の両方がサポートする変換「操作」、つまりCopy、MoveまたはReference(link)によって、パラメータ化される。 DragSource
が提供するデータ型のセットと、DropTarget
が包括できるデータ型のセットとの共通部分によって、パラメータ化される。- 通常はドロップの成功で終わるドラッグ操作をユーザーが終了するとき、
DragSource
およびDropTarget
は、DragSource
に関連した情報を含みその情報の型のネゴシエーションおよび変換となる通知を、Transferable
オブジェクトを介して受け取る。
- 導入されたバージョン:
- 1.2
-
インタフェース説明DnD操作中、その時点ではユーザーに見えていないスクロール可能なGUIコントロールの領域に操作の対象をドロップしたい場合があります。ドラッグ・ジェスチャ・イベントを受信するためのリスナー・インタフェース。
DragSourceListener
は、ドラッグ&ドロップ操作のオリジネータがユーザーのジェスチャの状態を追跡するためのイベント・インタフェースを定義し、ユーザーにドラッグ&ドロップ操作を通した適切な「ドラッグオーバー」フィード・バックを提供します。ドラッグ操作中のマウス・モーション・イベントを受け取るためのリスナー・インタフェースです。DropTargetListener
インタフェースは、対象のDropTarget
が関与するDnD操作の通知を提供するためにDropTarget
クラスによって使用されるコールバック・インタフェースです。 -
クラス説明このクラスにはドラッグ&ドロップ操作が実行するアクションの形式を表す定数値があります。
DragGestureEvent
は、特定のDragGestureRecognizer
が、追跡しているComponent
でプラットフォーム依存のドラッグ開始ジェスチャが発生したことを検出したときに、DragGestureListener
のdragGestureRecognized()メソッドに渡されます。DragGestureRecognizer
は、プラットフォーム依存のドラッグ開始ジェスチャを識別するために特定のComponent
に関連付けることのできる、プラットフォーム依存のリスナーを指定するための抽象基底クラスです。DragSource
は、ドラッグ&ドロップ操作の開始を担当するエンティティであり、いくつかのシナリオで使用される可能性があります。JVMごとに、そのJVMの寿命の間1デフォルト・インスタンスドラッグ・ソース・イベントを受け取る抽象アダプタ・クラスです。DragSourceContext
クラスは、ドラッグ&ドロップ・プロトコルのイニシエータ側の管理を担当します。DragSourceDragEvent
は、DragSourceContextPeer
からDragSourceContext
を経由して、そのDragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
に送られます。DragSourceDropEvent
は、DragSourceContextPeer
からDragSourceContext
を経由して、そのDragSourceContext
とそれに関連付けられたDragSource
に登録されたDragSourceListener
のdragDropEnd
メソッドに送られます。このクラスは、DragSourceDragEvent
とDragSourceDropEvent
の基底クラスです。DropTarget
は、ドラッグ&ドロップ操作中にComponent
がドロップを受け入れようとするときに、そのComponent
に関連付けられます。この保護されたネスト・クラスは、自動スクロールを実装します。ドロップ・ターゲット・イベントを受け取る抽象アダプタ・クラスです。ドラッグ&ドロップ操作に関連付けられた論理カーソルが、DropTarget
に関連付けられたComponent
の可視幾何学的図形と重なった場合は常に、DropTargetContext
が作成されます。DropTargetDragEvent
は、そのdragEnter()およびdragOver()メソッドによってDropTargetListener
に送られます。DropTargetDropEvent
は、DropTargetListener
のdrop()メソッドによって送られます。DropTargetEvent
は、DropTargetDragEvent
とDropTargetDropEvent
の両方の基底クラスです。DragGestureRecognizer
のこの抽象サブクラスは、マウス・ベースのジェスチャのDragGestureRecognizer
を定義します。