モジュール java.desktop

パッケージ java.awt.dnd

ドラッグ&ドロップ操作は、多くのグラフィカル・ユーザー・インタフェース・システムで見られる直接的な操作ジェスチャで、GUIの表現要素に論理的に関連付けられた2つのエンティティ間で情報を変換するメカニズムを提供します。 ドラッグ&ドロップは通常、適切な入力デバイスを使ったユーザーの物理的ジェスチャによって動作し、ナビゲーション中に後続のデータ変換で考えられる結果に関するユーザーへの連続的なフィード・バックをGUIの表現要素を介して可能にするメカニズムと、後続のデータ・ネゴシエーションとデータ変換を容易に行える機能の両方を提供します。

このパッケージは、Javaでドラッグ&ドロップ操作を行うのに必要なクラスおよびインタフェースを定義します。 ドラッグ・ソースとドロップ・ターゲットのクラス、およびドラッグされているデータを転送するためのイベントを定義します。 このパッケージはまた、ドラッグ&ドロップ操作中にユーザーに視覚的なフィード・バックを提供する手段を備えています。

標準的なドラッグ&ドロップ操作は次の状態に分解することができます(必ずしも連続していません)。

  • Transferable (転送可能になりうる)データのドラッグ&ドロップを開始するために、GUIの表現要素(Component)に関連付けられたDragSource (ドラッグ・ソース)が作成されます。
  • Transferableデータ型を消費できる可能性のある、GUIの表現要素(Component)に関連付けられた1つ以上のDropTargetが生成または削除されます。
  • DragGestureRecognizerDragSourceから取得され、ユーザーのドラッグ開始ジェスチャを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にアニメーションを描画することによって、「ドラッグ・アンダー」フィード・バックをユーザーに示します。

フィードバック結果の判定、および必ずどちらかが発生するデータ変換の最終的な成功または失敗は、次のようにパラメータ化されます。

  • ユーザーが選択し、DragSourceDropTargetの両方がサポートする変換「操作」、つまりCopy、MoveまたはReference(link)によって、パラメータ化される。
  • DragSourceが提供するデータ型のセットと、DropTargetが包括できるデータ型のセットとの共通部分によって、パラメータ化される。
  • 通常はドロップの成功で終わるドラッグ操作をユーザーが終了するとき、DragSourceおよびDropTargetは、DragSourceに関連した情報を含みその情報の型のネゴシエーションおよび変換となる通知を、Transferableオブジェクトを介して受け取る。

導入されたバージョン:
1.2
  • インタフェースのサマリー 
    インタフェース 説明
    Autoscroll
    DnD操作中、その時点ではユーザーに見えていないスクロール可能なGUIコントロールの領域に操作の対象をドロップしたい場合があります。
    DragGestureListener
    ドラッグ・ジェスチャ・イベントを受信するためのリスナー・インタフェース。
    DragSourceListener
    DragSourceListenerは、ドラッグ&ドロップ操作のオリジネータがユーザーのジェスチャの状態を追跡するためのイベント・インタフェースを定義し、ユーザーにドラッグ&ドロップ操作を通した適切な「ドラッグオーバー」フィード・バックを提供します。
    DragSourceMotionListener
    ドラッグ操作中のマウス・モーション・イベントを受け取るためのリスナー・インタフェースです。
    DropTargetListener
    DropTargetListenerインタフェースは、対象のDropTargetが関与するDnD操作の通知を提供するためにDropTargetクラスによって使用されるコールバック・インタフェースです。
  • クラスのサマリー 
    クラス 説明
    DnDConstants
    このクラスにはドラッグ&ドロップ操作が実行するアクションの形式を表す定数値があります。
    DragGestureEvent
    DragGestureEventは、特定のDragGestureRecognizerが、追跡しているComponentでプラットフォーム依存のドラッグ開始ジェスチャが発生したことを検出したときに、DragGestureListenerのdragGestureRecognized()メソッドに渡されます。
    DragGestureRecognizer
    DragGestureRecognizerは、プラットフォーム依存のドラッグ開始ジェスチャを識別するために特定のComponentに関連付けることのできる、プラットフォーム依存のリスナーを指定するための抽象基底クラスです。
    DragSource
    DragSourceは、ドラッグ&ドロップ操作の開始を担当するエンティティであり、いくつかのシナリオで使用される可能性があります。JVMごとに、そのJVMの寿命の間1デフォルト・インスタンス
    DragSourceAdapter
    ドラッグ・ソース・イベントを受け取る抽象アダプタ・クラスです。
    DragSourceContext
    DragSourceContextクラスは、ドラッグ&ドロップ・プロトコルのイニシエータ側の管理を担当します。
    DragSourceDragEvent
    DragSourceDragEventは、DragSourceContextPeerからDragSourceContextを経由して、そのDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerに送られます。
    DragSourceDropEvent
    DragSourceDropEventは、DragSourceContextPeerからDragSourceContextを経由して、そのDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragDropEndメソッドに送られます。
    DragSourceEvent
    このクラスは、DragSourceDragEventDragSourceDropEventの基底クラスです。
    DropTarget
    DropTargetは、ドラッグ&ドロップ操作中にComponentがドロップを受け入れようとするときに、そのComponentに関連付けられます。
    DropTarget.DropTargetAutoScroller
    この保護されたネスト・クラスは、自動スクロールを実装します。
    DropTargetAdapter
    ドロップ・ターゲット・イベントを受け取る抽象アダプタ・クラスです。
    DropTargetContext
    ドラッグ&ドロップ操作に関連付けられた論理カーソルが、DropTargetに関連付けられたComponentの可視幾何学的図形と重なった場合は常に、DropTargetContextが作成されます。
    DropTargetDragEvent
    DropTargetDragEventは、そのdragEnter()およびdragOver()メソッドによってDropTargetListenerに送られます。
    DropTargetDropEvent
    DropTargetDropEventは、DropTargetListenerのdrop()メソッドによって送られます。
    DropTargetEvent
    DropTargetEventは、DropTargetDragEventDropTargetDropEventの両方の基底クラスです。
    MouseDragGestureRecognizer
    DragGestureRecognizerのこの抽象サブクラスは、マウス・ベースのジェスチャのDragGestureRecognizerを定義します。
  • 例外のサマリー 
    例外 説明
    InvalidDnDOperationException
    この例外は、java.awt.dndパッケージのさまざまなメソッドによってスローされます。