Module java.desktop
Package java.awt.dnd

Class DropTarget

java.lang.Object
java.awt.dnd.DropTarget
所有已实现的接口:
DropTargetListener, Serializable, EventListener

public class DropTarget extends Object implements DropTargetListener, Serializable
DropTargetComponent关联,当该Component希望在拖放操作期间接受拖放时。

每个DropTarget都与一个FlavorMap相关联。默认的FlavorMap指的是SystemFlavorMap.getDefaultFlavorMap()返回的FlavorMap

自从:
1.2
参见:
  • Constructor Details

    • DropTarget

      public DropTarget(Component c, int ops, DropTargetListener dtl, boolean act, FlavorMap fm) throws HeadlessException
      给定要关联的Component,表示默认可接受操作的int,处理事件处理的DropTargetListener,指示DropTarget当前是否接受拖放的boolean,以及要使用的FlavorMap(或默认FlavorMap的null),创建一个新的DropTarget。

      只有启用的Component才会接收拖放。

      参数:
      c - 与此DropTarget关联的Component
      ops - 此DropTarget的默认可接受操作
      dtl - 此DropTargetDropTargetListener
      act - DropTarget是否接受拖放
      fm - 要使用的FlavorMap,或默认FlavorMap的null
      抛出:
      HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
      参见:
    • DropTarget

      public DropTarget(Component c, int ops, DropTargetListener dtl, boolean act) throws HeadlessException
      给定要关联的Component,表示默认可接受操作的int,处理事件处理的DropTargetListener,以及指示DropTarget当前是否接受拖放的boolean,创建一个DropTarget

      只有启用的Component才会接收拖放。

      参数:
      c - 与此DropTarget关联的Component
      ops - 此DropTarget的默认可接受操作
      dtl - 此DropTargetDropTargetListener
      act - DropTarget是否接受拖放
      抛出:
      HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
      参见:
    • DropTarget

      public DropTarget() throws HeadlessException
      创建一个DropTarget
      抛出:
      HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
      参见:
    • DropTarget

      public DropTarget(Component c, DropTargetListener dtl) throws HeadlessException
      给定要关联的Component和处理事件处理的DropTargetListener,创建一个DropTarget

      只有启用的Component才会接收拖放。

      参数:
      c - 与此DropTarget关联的Component
      dtl - 此DropTargetDropTargetListener
      抛出:
      HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
      参见:
    • DropTarget

      public DropTarget(Component c, int ops, DropTargetListener dtl) throws HeadlessException
      给定要关联的Component,表示默认可接受操作的int,以及处理事件处理的DropTargetListener,创建一个DropTarget

      只有启用的Component才会接收拖放。

      参数:
      c - 与此DropTarget关联的Component
      ops - 此DropTarget的默认可接受操作
      dtl - 此DropTargetDropTargetListener
      抛出:
      HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
      参见:
  • Method Details

    • setComponent

      public void setComponent(Component c)
      注意:此接口要求以两种方式之一安全地将DropTarget与Component关联,即:component.setDropTarget(droptarget);droptarget.setComponent(component);

      只有启用的Component才会接收拖放。

      参数:
      c - 要将此DropTarget关联的新Component
    • getComponent

      public Component getComponent()
      获取与此DropTarget关联的Component
      返回:
      当前Component
    • setDefaultActions

      public void setDefaultActions(int ops)
      设置此DropTarget的默认可接受操作。
      参数:
      ops - 默认操作
      参见:
    • getDefaultActions

      public int getDefaultActions()
      获取表示此DropTarget当前支持的操作的int
      返回:
      当前默认操作
    • setActive

      public void setActive(boolean isActive)
      如果true,则设置DropTarget为活动状态;如果false,则设置为非活动状态。
      参数:
      isActive - 设置DropTarget的活动状态。
    • isActive

      public boolean isActive()
      报告此DropTarget当前是否处于活动状态(准备接受拖放)。
      返回:
      如果活动,则返回true;如果非活动,则返回false
    • addDropTargetListener

      public void addDropTargetListener(DropTargetListener dtl) throws TooManyListenersException
      添加新的DropTargetListener(单播源)。
      参数:
      dtl - 新的DropTargetListener
      抛出:
      TooManyListenersException - 如果已经向此DropTarget添加了一个DropTargetListener
    • removeDropTargetListener

      public void removeDropTargetListener(DropTargetListener dtl)
      移除当前的DropTargetListener(单播源)。
      参数:
      dtl - 要注销的DropTargetListener
    • dragEnter

      public void dragEnter(DropTargetDragEvent dtde)
      在已注册的DropTargetListener上调用dragEnter,并将指定的DropTargetDragEvent传递给它。如果此DropTarget未处于活动状态,则不会产生任何效果。
      指定者:
      dragEnter 在接口 DropTargetListener
      参数:
      dtde - DropTargetDragEvent
      抛出:
      NullPointerException - 如果此DropTarget处于活动状态且dtdenull
      参见:
    • dragOver

      public void dragOver(DropTargetDragEvent dtde)
      在已注册的DropTargetListener上调用dragOver,并将指定的DropTargetDragEvent传递给它。如果此DropTarget未处于活动状态,则不会产生任何效果。
      指定者:
      dragOver 在接口 DropTargetListener
      参数:
      dtde - DropTargetDragEvent
      抛出:
      NullPointerException - 如果此DropTarget处于活动状态且dtdenull
      参见:
    • dropActionChanged

      public void dropActionChanged(DropTargetDragEvent dtde)
      在已注册的DropTargetListener上调用dropActionChanged,并将指定的DropTargetDragEvent传递给它。如果此DropTarget未处于活动状态,则不会产生任何效果。
      指定者:
      dropActionChanged 在接口 DropTargetListener
      参数:
      dtde - DropTargetDragEvent
      抛出:
      NullPointerException - 如果此DropTarget处于活动状态且dtdenull
      参见:
    • dragExit

      public void dragExit(DropTargetEvent dte)
      在已注册的DropTargetListener上调用dragExit,并将指定的DropTargetEvent传递给它。如果此DropTarget未处于活动状态,则不会产生任何效果。

      此方法本身不会因为空参数而抛出异常,但会因为监听器的相应方法抛出的异常而导致异常。

      指定者:
      dragExit 在接口 DropTargetListener
      参数:
      dte - DropTargetEvent
      参见:
    • drop

      public void drop(DropTargetDropEvent dtde)
      如果此DropTarget处于活动状态,则在已注册的DropTargetListener上调用drop,并将指定的DropTargetDropEvent传递给它。
      指定者:
      drop 在接口 DropTargetListener
      参数:
      dtde - DropTargetDropEvent
      抛出:
      NullPointerException - 如果dtdenull,并且以下至少一项为真:此DropTarget未处于活动状态,或者未注册DropTargetListener
      参见:
    • getFlavorMap

      public FlavorMap getFlavorMap()
      获取与此DropTarget关联的FlavorMap。如果未为此DropTarget设置FlavorMap,则将其与默认的FlavorMap关联。
      返回:
      此DropTarget的FlavorMap
    • setFlavorMap

      public void setFlavorMap(FlavorMap fm)
      设置与此DropTarget关联的FlavorMap
      参数:
      fm - 新的FlavorMap,或者使用默认的FlavorMap关联此DropTarget。
    • addNotify

      public void addNotify()
      通知DropTarget已与组件关联。通常从与此DropTarget关联的组件的java.awt.Component.addNotify()中调用此方法,以通知DropTarget已将ComponentPeer与该组件关联。除了通知此DropTarget与ComponentPeer的关联之外,调用此方法可能导致DnD系统出现故障。
    • removeNotify

      public void removeNotify()
      通知DropTarget已与组件取消关联。通常从与此DropTarget关联的组件的java.awt.Component.removeNotify()中调用此方法,以通知DropTarget已将ComponentPeer与该组件取消关联。除了通知此DropTarget与ComponentPeer的取消关联之外,调用此方法可能导致DnD系统出现故障。
    • getDropTargetContext

      public DropTargetContext getDropTargetContext()
      获取与此DropTarget关联的DropTargetContext
      返回:
      与此DropTarget关联的DropTargetContext
    • createDropTargetContext

      protected DropTargetContext createDropTargetContext()
      创建与此DropTarget关联的DropTargetContext。子类可以重写此方法以实例化自己的DropTargetContext子类。通常情况下,此调用仅由平台的DropTargetContextPeer在拖动操作遇到此DropTarget时调用。在没有当前拖动的情况下访问上下文会导致结果不确定。
      返回:
      与此DropTarget关联的DropTargetContext
    • createDropTargetAutoScroller

      protected DropTarget.DropTargetAutoScroller createDropTargetAutoScroller(Component c, Point p)
      创建一个嵌入式自动滚动器
      参数:
      c - Component
      p - Point
      返回:
      一个嵌入式自动滚动器
    • initializeAutoscrolling

      protected void initializeAutoscrolling(Point p)
      初始化自动滚动
      参数:
      p - Point
    • updateAutoscroll

      protected void updateAutoscroll(Point dragCursorLocn)
      使用当前光标位置更新自动滚动
      参数:
      dragCursorLocn - Point
    • clearAutoscroll

      protected void clearAutoscroll()
      清除自动滚动