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

クラスDragSource

java.lang.Object
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 final Cursor
    ドロップが現在許可されていることを示す、コピー操作で使用するデフォルトのCursor
    static final Cursor
    ドロップが現在許可されていないことを示す、コピー操作で使用するデフォルトのCursor
    static final Cursor
    ドロップが現在許可されていることを示す、リンク操作で使用するデフォルトのCursor
    static final Cursor
    ドロップが現在許可されていないことを示す、リンク操作で使用するデフォルトのCursor
    static final Cursor
    ドロップが現在許可されていることを示す、移動操作で使用するデフォルトのCursor
    static final Cursor
    ドロップが現在許可されていないことを示す、移動操作で使用するデフォルトのCursor
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいDragSourceを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    指定されたDragSourceListenerをこのDragSourceに追加し、このDragSourceで開始されたドラッグ操作中にドラッグ・ソース・イベントを受け取ります。
    void
    指定されたDragSourceMotionListenerをこのDragSourceに追加し、このDragSourceで開始されたドラッグ操作中にドラッグ・モーション・イベントを受け取ります。
    このDragSourceDragGestureRecognizerのデフォルト抽象サブクラスを実装する新しいDragGestureRecognizerを作成し、指定されたComponentDragGestureListenerを新しく作成されたオブジェクト上に設定します。
    createDragGestureRecognizer(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
    DragGestureRecognizerの指定された抽象サブクラスを実装する新しいDragGestureRecognizerを作成し、指定されたComponentDragGestureListenerを新しく作成されたオブジェクト上に設定します。
    createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
    現在のドラッグ操作を処理するDragSourceContextを作成します。
    static DragSource
    基本となるプラットフォームに関連付けられたDragSourceオブジェクトを取得します。
    このDragSourceに登録されたすべてのDragSourceListenerを取得します。
    このDragSourceに登録されたすべてのDragSourceMotionListenerを取得します。
    static int
    ドラッグ・ジェスチャ・モーションのしきい値を返します。
    このメソッドは、このDragSourceFlavorMapを返します。
    <T extends EventListener>
    T[]
    getListeners(Class<T> listenerType)
    このDragSourceFooListenerとして現在登録されているすべてのオブジェクトを取得します。
    static boolean
    基本となるプラットフォーム上でドラッグImageのサポートが使用可能かどうかを報告します。
    void
    このDragSourceから指定されたDragSourceListenerを削除します。
    void
    このDragSourceから指定されたDragSourceMotionListenerを削除します。
    void
    startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl)
    ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグのTransferable対象データ、およびDragSourceListenerを使用して、ドラッグを開始します。
    void
    startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
    ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグのTransferable対象データ、DragSourceListener、およびFlavorMapを使用して、ドラッグを開始します。
    void
    startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)
    ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグするImage、トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット、ドラッグの対象データ、およびDragSourceListenerで、ドラッグを開始します。
    void
    startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
    ドラッグを開始したDragGestureEvent、使用する初期のCursor、ドラッグするImage、トリガーの瞬間におけるCursorのホット・スポットからのImage原点のオフセット、ドラッグのTransferable対象データ、DragSourceListener、およびFlavorMapで、ドラッグを開始します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • DefaultCopyDrop

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

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

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

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

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

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

  • メソッドの詳細

    • getDefaultDragSource

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

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

      public DragSourceListener[] getDragSourceListeners()
      このDragSourceに登録されたすべてのDragSourceListenerを取得します。
      戻り値:
      このDragSourceのすべてのDragSourceListener。このようなリスナーが現在登録されていない場合は、空の配列
      導入されたバージョン:
      1.4
      関連項目:
    • addDragSourceMotionListener

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

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

      public DragSourceMotionListener[] getDragSourceMotionListeners()
      このDragSourceに登録されたすべてのDragSourceMotionListenerを取得します。
      戻り値:
      このDragSourceのすべてのDragSourceMotionListener。このようなリスナーが現在登録されていない場合は、空の配列
      導入されたバージョン:
      1.4
      関連項目:
    • 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
      関連項目:
    • getDragThreshold

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

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

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