模块  java.desktop
软件包  javax.swing

Class TransferHandler.TransferSupport

  • Enclosing class:
    TransferHandler

    public static final class TransferHandler.TransferSupport
    extends Object
    此类封装了剪贴板或拖放传输的所有相关详细信息,还允许自定义拖放体验的各个方面。

    此类的主要目的是提供开发人员所需的信息,以确定传输的适用性或导入其中包含的数据。 但它也兼作控制器,用于在拖放期间自定义属性,例如是否显示放置位置以及要使用的放置操作。

    开发人员通常不需要创建此类的实例。 相反,它们是由DnD实现提供给TransferHandler某些方法的TransferHandler

    从以下版本开始:
    1.6
    另请参见:
    TransferHandler.canImport(TransferHandler.TransferSupport)TransferHandler.importData(TransferHandler.TransferSupport)
    • 构造方法详细信息

      • TransferSupport

        public TransferSupport​(Component component,
                               Transferable transferable)
        创建一个 TransferSupport其中 isDrop() false用于给定组件和 Transferable
        参数
        component - 目标组件
        transferable - 可转让
        异常
        NullPointerException - 如果任一参数为 null
    • 方法详细信息

      • isDrop

        public boolean isDrop()
        返回此 TransferSupport是否表示放置操作。
        结果
        true如果这是一个放置操作,否则为 false
      • getComponent

        public Component getComponent()
        返回此传输的目标组件。
        结果
        目标组件
      • getDropLocation

        public TransferHandler.DropLocation getDropLocation()
        当此TransferSupport表示下降时,返回组件的当前(非null )放置位置。

        注意:对于具有内置drop支持的组件,此位置将是该组件的getDropLocation方法返回的相同类型的DropLocation的子类。

        此方法仅适用于拖放传输。 致电isDrop()时的电话isDrop()false结果为IllegalStateException

        结果
        下降的位置
        异常
        IllegalStateException - 如果这不是一滴
        另请参见:
        isDrop()
      • setShowDropLocation

        public void setShowDropLocation​(boolean showDropLocation)
        设置是否应在视觉上指示放置位置 - 必须代表放置。 这适用于在拖放操作期间适当时自动显示放置位置的组件。 默认情况下,仅当TransferHandler表示可以接受此TransferSupport表示的导入时, TransferHandler显示放置位置。 使用此方法,您可以强制始终显示放置位置,或始终不显示放置位置。

        此方法仅适用于拖放传输。 致电isDrop()时,请isDrop() false结果为IllegalStateException

        参数
        showDropLocation - 是否指示放置位置
        异常
        IllegalStateException - 如果这不是一滴
        另请参见:
        isDrop()
      • setDropAction

        public void setDropAction​(int dropAction)
        将传输的放置操作(必须表示放置)设置为给定操作,而不是默认的用户放置操作。 该行动必须由源的放置动作的支持,并且必须是一个COPYMOVELINK

        此方法仅适用于拖放传输。 致电isDrop()时,请isDrop() false结果为IllegalStateException

        参数
        dropAction - 放置动作
        异常
        IllegalStateException - 如果这不是一滴
        IllegalArgumentException - 如果指定了无效操作
        另请参见:
        getDropAction()getUserDropAction()getSourceDropActions()isDrop()
      • getDropAction

        public int getDropAction()
        TransferSupport表示下降时,返回为drop选择的操作。

        除非通过setDropAction明确选择,否则返回getUserDropAction提供的用户放弃操作。

        您可能希望在TransferHandlerimportData方法中查询此信息,以根据操作自定义处理。

        此方法仅适用于拖放传输。 致电isDrop()时,请isDrop() false结果为IllegalStateException

        结果
        为下降选择的行动
        异常
        IllegalStateException - 如果这不是一滴
        另请参见:
        setDropAction(int)getUserDropAction()isDrop()
      • getUserDropAction

        public int getUserDropAction()
        TransferSupport代表丢弃时,返回drop的用户放置操作。

        DropTargetDragEventDropTargetDropEvent的文档中所述,为drop选择了用户放置操作。 可以通过setDropAction方法选择不同的动作作为放下动作。

        在确定放置的适用性或决定放下操作以明确选择时,您可能希望在TransferHandlercanImport方法中查询此信息。

        此方法仅适用于拖放传输。 isDrop()false时,请isDrop() IllegalStateException

        结果
        用户放弃操作
        异常
        IllegalStateException - 如果这不是一滴
        另请参见:
        setDropAction(int)getDropAction()isDrop()
      • getSourceDropActions

        public int getSourceDropActions()
        当此TransferSupport表示放置时,返回拖动源支持的放置操作。

        源操作表示该集合由该传送源支持的动作,和被表示为一些按位或组合的COPYMOVELINK 在确定放置的适用性或决定放下操作以明确选择时,您可能希望在TransferHandlercanImport方法中查询此信息。 要确定源是否支持特定操作,请使用源删除操作按位-AND操作,然后将结果与原始操作进行比较。 例如:

          boolean copySupported = (COPY & getSourceDropActions()) == COPY; 

        此方法仅适用于拖放传输。 致电isDrop()时,请isDrop() false结果为IllegalStateException

        结果
        拖动源支持的放置操作
        异常
        IllegalStateException - 如果这不是一滴
        另请参见:
        isDrop()
      • getDataFlavors

        public DataFlavor[] getDataFlavors()
        返回此传输的数据flavor。
        结果
        此转移的数据风格
      • isDataFlavorSupported

        public boolean isDataFlavorSupported​(DataFlavor df)
        返回是否支持给定的数据flavor。
        参数
        df - DataFlavor进行测试
        结果
        是否支持给定的风味。
      • getTransferable

        public Transferable getTransferable()
        返回与此传输关联的Transferable

        注意:除非有必要直接获取Transferable ,否则请使用Transferable中的其他方法之一来查询传输。 这可能比获取Transferable并直接询问更好。

        结果
        与此转移相关的 Transferable