モジュール java.desktop
パッケージ java.awt.dnd

クラスDragSource

  • すべての実装されたインタフェース:
    Serializable

    public class DragSource
    extends Object
    implements Serializable
    DragSourceは、ドラッグ&ドロップ操作の開始を担当するエンティティであり、いくつかのシナリオで使用される可能性があります。
    • JVMごとに、そのJVMの寿命の間1デフォルト・インスタンス
    • 潜在的なドラッグ・イニシエータ・オブジェクト(TextFieldなど)のクラスごとに1インスタンス。実装により異なる
    • GUIの特定のComponentのインスタンス、またはComponentインスタンスに関連付けられているアプリケーション固有のオブジェクトごとに1つ。実装により異なる
    • その他任意の関連付け。実装により異なる
    DragSourceを取得した場合は、DragGestureRecognizerも取得して、DragSourceを特定のComponentと関連付けます。

    ユーザーのジェスチャの最初の解釈、および以降のドラッグ操作の開始は、通常はDragGestureRecognizerによって実装される実装側のComponentの役割です。

    ドラッグ・ジェスチャが発生すると、ユーザーのナビゲーション・ジェスチャの処理およびドラッグ&ドロップ・プロトコル通知の送達のために、DragSourceのstartDrag()メソッドが呼び出されます。 DragSourceは、どの時点においても現在の操作として1つのドラッグ&ドロップ操作のみを許可し、それ以上のstartDrag()要求はすべて、現在の操作が完了するまでIllegalDnDOperationExceptionをスローすることによって拒否します。

    startDrag()メソッドは、createDragSourceContext()メソッドを呼び出して適切なDragSourceContextをインスタンス化し、DragSourceContextPeerをそれに関連付けます。

    ドラッグ&ドロップ・システムが何らかの理由でドラッグ操作を開始できない場合、startDrag()メソッドは、このような状態を通知するためにjava.awt.dnd.InvalidDnDOperationExceptionをスローします。 この例外は通常、基礎になるプラットフォーム・システムがドラッグを開始する状態にないか、あるいは指定されたパラメータが無効な場合にスローされます。

    ドラッグ中、ドラッグ操作の開始時にソースによって公開された一連の操作は、その操作が完了するまで変更できないことに注意してください。 これらの操作は、DragSourceに関して、その操作の期間を通して一定です。

    導入されたバージョン:
    1.2
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static Cursor DefaultCopyDrop
      ドロップが現在許可されていることを示す、コピー操作で使用するデフォルトのCursor
      static Cursor DefaultCopyNoDrop
      ドロップが現在許可されていないことを示す、コピー操作で使用するデフォルトのCursor
      static Cursor DefaultLinkDrop
      ドロップが現在許可されていることを示す、リンク操作で使用するデフォルトのCursor
      static Cursor DefaultLinkNoDrop
      ドロップが現在許可されていないことを示す、リンク操作で使用するデフォルトのCursor
      static Cursor DefaultMoveDrop
      ドロップが現在許可されていることを示す、移動操作で使用するデフォルトのCursor
      static Cursor DefaultMoveNoDrop
      ドロップが現在許可されていないことを示す、移動操作で使用するデフォルトのCursor
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      DragSource()
      新しいDragSourceを作成します。
    • フィールドの詳細

      • DefaultCopyDrop

        public static final Cursor DefaultCopyDrop
        ドロップが現在許可されていることを示す、コピー操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
      • DefaultMoveDrop

        public static final Cursor DefaultMoveDrop
        ドロップが現在許可されていることを示す、移動操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
      • DefaultLinkDrop

        public static final Cursor DefaultLinkDrop
        ドロップが現在許可されていることを示す、リンク操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
      • DefaultCopyNoDrop

        public static final Cursor DefaultCopyNoDrop
        ドロップが現在許可されていないことを示す、コピー操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
      • DefaultMoveNoDrop

        public static final Cursor DefaultMoveNoDrop
        ドロップが現在許可されていないことを示す、移動操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
      • DefaultLinkNoDrop

        public static final Cursor DefaultLinkNoDrop
        ドロップが現在許可されていないことを示す、リンク操作で使用するデフォルトのCursorGraphicsEnvironment.isHeadless()trueを返す場合はnull
        関連項目:
        GraphicsEnvironment.isHeadless()
    • メソッドの詳細

      • getDefaultDragSource

        public static DragSource getDefaultDragSource()
        基本となるプラットフォームに関連付けられたDragSourceオブジェクトを取得します。
        戻り値:
        プラットフォームDragSource
        例外:
        HeadlessException - GraphicsEnvironment.isHeadless()がtrueを返す場合
        関連項目:
        GraphicsEnvironment.isHeadless()
      • isDragImageSupported

        public static boolean isDragImageSupported()
        基本となるプラットフォーム上でドラッグImageのサポートが使用可能かどうかを報告します。
        戻り値:
        このプラットフォームでドラッグ・イメージ・サポートが可能な場合
      • startDrag

        public void startDrag​(DragGestureEvent trigger,
                              Cursor dragCursor,
                              Image dragImage,
                              Point imageOffset,
                              Transferable transferable,
                              DragSourceListener dsl,
                              FlavorMap flavorMap)
                       throws InvalidDnDOperationException
        ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグするImage、トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット、ドラッグのTransferable対象データ、DragSourceListener、およびFlavorMapで、ドラッグを開始します。
        パラメータ:
        trigger - ドラッグを開始したDragGestureEvent
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、DragSourceContextを参照してください。
        dragImage - ドラッグするイメージ、またはnull
        imageOffset - トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット
        transferable - ドラッグの対象データ
        dsl - DragSourceListener
        flavorMap - 使用するFlavorMap、またはnull
        例外:
        InvalidDnDOperationException - ドラッグ&ドロップ・システムがドラッグ操作を開始できない場合、または既存のドラッグ操作を引き続き実行中にユーザーがドラッグを開始しようとした場合
      • startDrag

        public void startDrag​(DragGestureEvent trigger,
                              Cursor dragCursor,
                              Transferable transferable,
                              DragSourceListener dsl,
                              FlavorMap flavorMap)
                       throws InvalidDnDOperationException
        ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグのTransferable対象データ、DragSourceListener、およびFlavorMapを使用して、ドラッグを開始します。
        パラメータ:
        trigger - ドラッグを開始したDragGestureEvent
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、DragSourceContextを参照してください。
        transferable - ドラッグの対象データ
        dsl - DragSourceListener
        flavorMap - 使用するFlavorMap、またはnull
        例外:
        InvalidDnDOperationException - ドラッグ&ドロップ・システムがドラッグ操作を開始できない場合、または既存のドラッグ操作を引き続き実行中にユーザーがドラッグを開始しようとした場合
      • startDrag

        public void startDrag​(DragGestureEvent trigger,
                              Cursor dragCursor,
                              Image dragImage,
                              Point dragOffset,
                              Transferable transferable,
                              DragSourceListener dsl)
                       throws InvalidDnDOperationException
        ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグするImage、トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット、ドラッグの対象データ、およびDragSourceListenerで、ドラッグを開始します。
        パラメータ:
        trigger - ドラッグを開始したDragGestureEvent
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、DragSourceContextを参照してください。
        dragImage - ドラッグするImage、またはnull
        dragOffset - トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット
        transferable - ドラッグの対象データ
        dsl - DragSourceListener
        例外:
        InvalidDnDOperationException - ドラッグ&ドロップ・システムがドラッグ操作を開始できない場合、または既存のドラッグ操作を引き続き実行中にユーザーがドラッグを開始しようとした場合
      • startDrag

        public void startDrag​(DragGestureEvent trigger,
                              Cursor dragCursor,
                              Transferable transferable,
                              DragSourceListener dsl)
                       throws InvalidDnDOperationException
        ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグのTransferable対象データ、およびDragSourceListenerを使用して、ドラッグを開始します。
        パラメータ:
        trigger - ドラッグを開始したDragGestureEvent
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、DragSourceContextクラスを参照
        transferable - ドラッグの対象データ
        dsl - DragSourceListener
        例外:
        InvalidDnDOperationException - ドラッグ&ドロップ・システムがドラッグ操作を開始できない場合、または既存のドラッグ操作を引き続き実行中にユーザーがドラッグを開始しようとした場合
      • createDragSourceContext

        protected DragSourceContext createDragSourceContext​(DragGestureEvent dgl,
                                                            Cursor dragCursor,
                                                            Image dragImage,
                                                            Point imageOffset,
                                                            Transferable t,
                                                            DragSourceListener dsl)
        現在のドラッグ操作を処理するDragSourceContextを作成します。

        新しいDragSourceContextサブクラスを組み込むには、DragSourceをサブクラス化し、このメソッドをオーバーライドします。

        dragImagenullの場合は、このドラッグ操作のドラッグオーバー・フィードバックを表すためにイメージが使用されませんが、NullPointerExceptionはスローされません。

        dslnullの場合は、作成されたDragSourceContextにドラッグ・ソース・リスナーが登録されませんが、NullPointerExceptionはスローされません。

        パラメータ:
        dgl - ドラッグをトリガーしたDragGestureEvent
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、DragSourceContextクラスを参照
        dragImage - ドラッグするImage、またはnull
        imageOffset - トリガーの瞬間におけるカーソルのホット・スポットからのImage原点のオフセット
        t - ドラッグの対象データ
        dsl - DragSourceListener
        戻り値:
        DragSourceContext
        例外:
        NullPointerException - dscpnullである場合
        NullPointerException - dglnullである場合
        NullPointerException - dragImagenullではなく、imageOffsetnullの場合
        NullPointerException - tnullである場合
        IllegalArgumentException - トリガー・イベントに関連付けられたComponentnullの場合。
        IllegalArgumentException - トリガー・イベントのDragSourcenullの場合。
        IllegalArgumentException - トリガー・イベントのドラッグ・アクションがDnDConstants.ACTION_NONEの場合。
        IllegalArgumentException - トリガー・イベントに関連付けられたDragGestureRecognizerのソース・アクションがDnDConstants.ACTION_NONEに等しい場合。
      • getFlavorMap

        public FlavorMap getFlavorMap()
        このメソッドは、このDragSourceFlavorMapを返します。
        戻り値:
        このDragSourceFlavorMap
      • createDragGestureRecognizer

        public <T extends DragGestureRecognizer> T createDragGestureRecognizer​(Class<T> recognizerAbstractClass,
                                                                               Component c,
                                                                               int actions,
                                                                               DragGestureListener dgl)
        DragGestureRecognizerの指定された抽象サブクラスを実装する新しいDragGestureRecognizerを作成し、指定されたComponentDragGestureListenerを新しく作成されたオブジェクト上に設定します。
        型パラメータ:
        T - 作成するDragGestureRecognizerの型
        パラメータ:
        recognizerAbstractClass - 要求された抽象型
        actions - 許可されているソース・ドラッグ・アクション
        c - Componentターゲット
        dgl - 通知するDragGestureListener
        戻り値:
        新しいDragGestureRecognizerToolkit.createDragGestureRecognizerメソッドが、要求されたDragGestureRecognizerサブクラスに使用可能な実装を持たず、nullを返した場合はnull
      • createDefaultDragGestureRecognizer

        public DragGestureRecognizer createDefaultDragGestureRecognizer​(Component c,
                                                                        int actions,
                                                                        DragGestureListener dgl)
        このDragSourceDragGestureRecognizerのデフォルト抽象サブクラスを実装する新しいDragGestureRecognizerを作成し、指定されたComponentDragGestureListenerを新しく作成されたオブジェクト上に設定します。 このDragSourceの場合、デフォルトはMouseDragGestureRecognizerです。
        パラメータ:
        c - レコグナイザのComponentターゲット
        actions - 許可されているソース・アクション
        dgl - 通知するDragGestureListener
        戻り値:
        新しいDragGestureRecognizerToolkit.createDragGestureRecognizerメソッドが、要求されたDragGestureRecognizerサブクラスに使用可能な実装を持たず、nullを返した場合はnull
      • addDragSourceListener

        public void addDragSourceListener​(DragSourceListener dsl)
        指定されたDragSourceListenerをこのDragSourceに追加し、このDragSourceで開始されたドラッグ操作中にドラッグ・ソース・イベントを受け取ります。 nullリスナーが指定されている場合は、何も処理は行われず、例外はスローされません。
        パラメータ:
        dsl - 追加するDragSourceListener
        導入されたバージョン:
        1.4
        関連項目:
        removeDragSourceListener(java.awt.dnd.DragSourceListener), getDragSourceListeners()
      • removeDragSourceListener

        public void removeDragSourceListener​(DragSourceListener dsl)
        このDragSourceから指定されたDragSourceListenerを削除します。 nullリスナーが指定されている場合は、何も処理は行われず、例外はスローされません。 引数で指定されたリスナーが以前にこのDragSourceに追加されなかった場合は、何も処理は行われず、例外はスローされません。
        パラメータ:
        dsl - 削除するDragSourceListener
        導入されたバージョン:
        1.4
        関連項目:
        addDragSourceListener(java.awt.dnd.DragSourceListener), getDragSourceListeners()
      • addDragSourceMotionListener

        public void addDragSourceMotionListener​(DragSourceMotionListener dsml)
        指定されたDragSourceMotionListenerをこのDragSourceに追加し、このDragSourceで開始されたドラッグ操作中にドラッグ・モーション・イベントを受け取ります。 nullリスナーが指定されている場合は、何も処理は行われず、例外はスローされません。
        パラメータ:
        dsml - 追加するDragSourceMotionListener
        導入されたバージョン:
        1.4
        関連項目:
        removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()
      • removeDragSourceMotionListener

        public void removeDragSourceMotionListener​(DragSourceMotionListener dsml)
        このDragSourceから指定されたDragSourceMotionListenerを削除します。 nullリスナーが指定されている場合は、何も処理は行われず、例外はスローされません。 引数で指定されたリスナーが以前にこのDragSourceに追加されなかった場合は、何も処理は行われず、例外はスローされません。
        パラメータ:
        dsml - 削除するDragSourceMotionListener
        導入されたバージョン:
        1.4
        関連項目:
        addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        現在このDragSourceFooListenerとして登録されているすべてのオブジェクトを取得します。 FooListenerは、addFooListenerメソッドを使用して登録されます。
        型パラメータ:
        T - リスナー・オブジェクトの型
        パラメータ:
        listenerType - 要求されるリスナーの型。java.util.EventListenerの子孫のインタフェースを指定してください
        戻り値:
        このDragSource上でFooListenerとして登録されているすべてのオブジェクトの配列。このようなリスナーが追加されていない場合は空の配列
        例外:
        ClassCastException - listenerTypeで、java.util.EventListenerを実装するクラスまたはインタフェースが指定されなかった場合
        導入されたバージョン:
        1.4
        関連項目:
        getDragSourceListeners(), getDragSourceMotionListeners()
      • getDragThreshold

        public static int getDragThreshold()
        ドラッグ・ジェスチャ・モーションのしきい値を返します。 ドラッグ・ジェスチャ・モーションのしきい値は、MouseDragGestureRecognizerの推奨される動作を定義します。

        システム・プロパティawt.dnd.drag.thresholdが正の整数に設定されている場合、このメソッドはシステム・プロパティの値を返します。そうでない場合、関連するデスクトップ・プロパティが使用でき、Javaプラットフォームの実装でサポートされている場合、このメソッドはそのプロパティの値を返します。そうでない場合、このメソッドは何らかのデフォルト値を返します。 関連するデスクトップ・プロパティは、java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold")を使用して照会できます。

        戻り値:
        ドラッグ・ジェスチャ・モーションのしきい値
        導入されたバージョン:
        1.5
        関連項目:
        MouseDragGestureRecognizer