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

クラスDragSourceContext

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

    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クラスのカスタム実装を提供することによって、カスタム・カーソルの動作を実現することもできます。

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

      フィールド 
      修飾子と型 フィールド 説明
      protected static int CHANGED
      ユーザー操作が変更されたことを示す、updateCurrentCursor()によって使用されるint
      protected static int DEFAULT
      Cursorをデフォルト(ドロップなし)のCursorに変更するべきであることを示す、updateCurrentCursor()によって使用されるint
      protected static int ENTER
      CursorDropTargetに入ったことを示す、updateCurrentCursor()によって使用されるint
      protected static int OVER
      CursorDropTargetの上にあることを示す、updateCurrentCursor()によって使用されるint
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      DragSourceContext​(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)
      まだ追加されていない場合は、このDragSourceContextDragSourceListenerを追加します。
      void dragDropEnd​(DragSourceDropEvent dsde)
      このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragDropEndを呼び出し、指定されたDragSourceDropEventをそれに渡します。
      void dragEnter​(DragSourceDragEvent dsde)
      このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragEnterを呼び出し、指定されたDragSourceDragEventをそれに渡します。
      void dragExit​(DragSourceEvent dse)
      このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragExitを呼び出し、指定されたDragSourceEventをそれに渡します。
      void dragMouseMoved​(DragSourceDragEvent dsde)
      このDragSourceContextに関連付けられたDragSourceに登録されたDragSourceMotionListenerdragMouseMovedを呼び出し、指定されたDragSourceDragEventをそれに渡します。
      void dragOver​(DragSourceDragEvent dsde)
      このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragOverを呼び出し、指定されたDragSourceDragEventをそれに渡します。
      void dropActionChanged​(DragSourceDragEvent dsde)
      このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdropActionChangedを呼び出し、指定された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()
      TransferableDataFlavorが変更されたことをピアに通知します。
      protected void updateCurrentCursor​(int sourceAct, int targetAct, int status)
      デフォルトのドラッグ・カーソルの動作がアクティブな場合、このメソッドは、ドラッグ・ソースでサポートされる指定されたアクション、ドロップ・ターゲット・アクション、およびステータスにデフォルトのドラッグ・カーソルを設定します。そうでない場合、このメソッドは何も行いません。
    • フィールドの詳細

      • DEFAULT

        protected static final int DEFAULT
        Cursorをデフォルト(ドロップなし)のCursorに変更するべきであることを示す、updateCurrentCursor()によって使用されるint
        関連項目:
        定数フィールド値
      • ENTER

        protected static final int ENTER
        CursorDropTargetに入ったことを示す、updateCurrentCursor()によって使用されるint
        関連項目:
        定数フィールド値
      • OVER

        protected static final int OVER
        CursorDropTargetの上にあることを示す、updateCurrentCursor()によって使用されるint
        関連項目:
        定数フィールド値
      • CHANGED

        protected static final int CHANGED
        ユーザー操作が変更されたことを示す、updateCurrentCursor()によって使用されるint
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • DragSourceContext

        public DragSourceContext​(DragGestureEvent trigger,
                                 Cursor dragCursor,
                                 Image dragImage,
                                 Point offset,
                                 Transferable t,
                                 DragSourceListener dsl)
        このコンストラクタは、DragSourceから呼び出され、このドラッグのDragSourceContextPeer、ドラッグをトリガーしたDragGestureEvent、ドラッグに使用する初期のCursor、ドラッグの実行中に表示する(オプションの) Image、トリガー・イベントの瞬間におけるホット・スポットからのImage原点のオフセット、Transferable対象データ、およびドラッグ&ドロップ操作中に使用するDragSourceListenerを使用して、新しいDragSourceContextを作成します。
        DragSourceContextPeernullの場合は、NullPointerExceptionがスローされます。

        DragGestureEventnullの場合は、NullPointerExceptionがスローされます。

        Cursornullの場合、例外はスローされず、このドラッグ操作に対してデフォルトのドラッグ・カーソルの動作がアクティブになります。

        Imagenullの場合、例外はスローされません。

        Imagenullでなく、オフセットがnull NullPointerExceptionであればスローされます。

        Transferablenullの場合は、NullPointerExceptionがスローされます。

        DragSourceListenernullの場合、例外はスローされません。
        パラメータ:
        trigger - トリガー・イベント
        dragCursor - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理メカニズムの詳細は、クラス・レベルのドキュメントを参照
        dragImage - ドラッグするImage (またはnull)
        offset - トリガー・イベントの瞬間におけるホット・スポットからのイメージ原点のオフセット
        t - Transferable
        dsl - DragSourceListener
        例外:
        IllegalArgumentException - トリガー・イベントに関連付けられたComponentnullの場合。
        IllegalArgumentException - トリガー・イベントのDragSourcenullの場合。
        IllegalArgumentException - トリガー・イベントのドラッグ・アクションがDnDConstants.ACTION_NONEの場合。
        IllegalArgumentException - トリガー・イベントに関連付けられたDragGestureRecognizerのソース・アクションがDnDConstants.ACTION_NONEに等しい場合。
        NullPointerException - dscp、trigger、tのいずれかがnullの場合、またはdragImageがnull以外であり、かつオフセットがnullの場合
    • メソッドの詳細

      • getDragSource

        public DragSource getDragSource()
        このDragSourceContextをインスタンス化したDragSourceを返します。
        戻り値:
        このDragSourceContextをインスタンス化したDragSource
      • getComponent

        public Component getComponent()
        このDragSourceContextに関連付けられたComponentを返します。
        戻り値:
        ドラッグを開始したComponent
      • getTrigger

        public DragGestureEvent getTrigger()
        ドラッグを最初にトリガーしたDragGestureEventを返します。
        戻り値:
        ドラッグをトリガーしたEvent
      • getSourceActions

        public int getSourceActions()
        このDragSourceContextに関連付けられたドラッグ操作のドラッグ・ソースでサポートされている一連のドロップ・アクションを表すDnDConstantsの、ビット単位のマスクを返します。
        戻り値:
        ドラッグ・ソースでサポートされているドロップ・アクション
      • setCursor

        public void setCursor​(Cursor c)
        このドラッグ操作のカスタム・カーソルを指定されたCursorに設定します。 指定されたCursornullの場合は、このドラッグ操作に対してデフォルトのドラッグ・カーソルの動作がアクティブになり、それ以外の場合は非アクティブになります。
        パラメータ:
        c - このドラッグ操作の初期のCursor。デフォルトのカーソル処理の場合はnull。ドラッグ&ドロップ中のカーソル処理の詳細は、クラス・レベルのドキュメントを参照
      • getCursor

        public Cursor getCursor()
        現在のカスタム・ドラッグCursorを返します。
        戻り値:
        現在のカスタム・ドラッグCursorが設定されている場合は、nullが返されます。
        関連項目:
        setCursor(java.awt.Cursor)
      • addDragSourceListener

        public void addDragSourceListener​(DragSourceListener dsl)
                                   throws TooManyListenersException
        まだ追加されていない場合は、このDragSourceContextDragSourceListenerを追加します。 DragSourceListenerがすでに存在する場合、このメソッドはTooManyListenersExceptionをスローします。
        パラメータ:
        dsl - 追加するDragSourceListener nullは禁止されていないが、パラメータとして受け付けられないことに注意。
        例外:
        TooManyListenersException - DragSourceListenerがすでに追加されている場合
      • removeDragSourceListener

        public void removeDragSourceListener​(DragSourceListener dsl)
        このDragSourceContextから指定されたDragSourceListenerを削除します。
        パラメータ:
        dsl - 削除するDragSourceListenernullは禁止されていないが、パラメータとして受け付けられないことに注意。
      • transferablesFlavorsChanged

        public void transferablesFlavorsChanged()
        TransferableDataFlavorが変更されたことをピアに通知します。
      • dragEnter

        public void dragEnter​(DragSourceDragEvent dsde)
        このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragEnterを呼び出し、指定されたDragSourceDragEventをそれに渡します。
        定義:
        dragEnter、インタフェース: DragSourceListener
        パラメータ:
        dsde - DragSourceDragEvent
      • dragOver

        public void dragOver​(DragSourceDragEvent dsde)
        このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragOverを呼び出し、指定されたDragSourceDragEventをそれに渡します。
        定義:
        dragOver、インタフェース: DragSourceListener
        パラメータ:
        dsde - DragSourceDragEvent
      • dragExit

        public void dragExit​(DragSourceEvent dse)
        このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragExitを呼び出し、指定されたDragSourceEventをそれに渡します。
        定義:
        dragExit、インタフェース: DragSourceListener
        パラメータ:
        dse - DragSourceEvent
      • dropActionChanged

        public void dropActionChanged​(DragSourceDragEvent dsde)
        このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdropActionChangedを呼び出し、指定されたDragSourceDragEventをそれに渡します。
        定義:
        dropActionChanged、インタフェース: DragSourceListener
        パラメータ:
        dsde - DragSourceDragEvent
      • dragDropEnd

        public void dragDropEnd​(DragSourceDropEvent dsde)
        このDragSourceContextとそれに関連付けられたDragSourceに登録されたDragSourceListenerdragDropEndを呼び出し、指定されたDragSourceDropEventをそれに渡します。
        定義:
        dragDropEnd、インタフェース: DragSourceListener
        パラメータ:
        dsde - DragSourceDropEvent
      • dragMouseMoved

        public void dragMouseMoved​(DragSourceDragEvent dsde)
        このDragSourceContextに関連付けられたDragSourceに登録されたDragSourceMotionListenerdragMouseMovedを呼び出し、指定されたDragSourceDragEventをそれに渡します。
        定義:
        dragMouseMoved、インタフェース: DragSourceMotionListener
        パラメータ:
        dsde - DragSourceDragEvent
        導入されたバージョン:
        1.4
      • getTransferable

        public Transferable getTransferable()
        このDragSourceContextに関連付けられたTransferableを返します。
        戻り値:
        Transferable
      • updateCurrentCursor

        protected void updateCurrentCursor​(int sourceAct,
                                           int targetAct,
                                           int status)
        デフォルトのドラッグ・カーソルの動作がアクティブな場合、このメソッドは、ドラッグ・ソースでサポートされる指定されたアクション、ドロップ・ターゲット・アクション、およびステータスにデフォルトのドラッグ・カーソルを設定します。そうでない場合、このメソッドは何も行いません。
        パラメータ:
        sourceAct - ドラッグ・ソースでサポートされているアクション
        targetAct - ドロップ・ターゲット・アクション
        status - フィールドDEFAULTENTEROVERCHANGEDのいずれか