javax.swing
类 TransferHandler.TransferSupport

java.lang.Object
  继承者 javax.swing.TransferHandler.TransferSupport
正在封闭类:
TransferHandler

public static final class TransferHandler.TransferSupport
   
   
   
extends Object

此类封装剪贴板或拖放传输的所有相关详细信息,并且还允许自定义拖放过程的各方面。

此类的主要目的是提供开发人员需要的信息,以便确定传输的适合性或者导入传输中包含的数据。但它同时又是一个控制器,可自定义拖放过程中的属性,比如是否显示放置位置,使用哪种放置动作等。

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

从以下版本开始:
1.6
另请参见:
TransferHandler.canImport(TransferHandler.TransferSupport), TransferHandler.importData(TransferHandler.TransferSupport)

构造方法摘要
TransferHandler.TransferSupport(Component component, Transferable transferable)
          使用给定组件和 Transferable 创建一个 TransferSupport,对于该 TransferSupportisDrop() 返回 false
 
方法摘要
 ComponentgetComponent()
          返回此传输的目标组件。
 DataFlavor[]getDataFlavors()
          返回此传输的数据 flavor。
 intgetDropAction()
          当此 TransferSupport 表示放置操作时,返回为其选择的动作。
 TransferHandler.DropLocationgetDropLocation()
          此 TransferSupport 表示一个放置操作时,返回组件的当前放置位置(非 null)。
 intgetSourceDropActions()
          当此 TransferSupport 表示放置操作时,返回拖动源受支持的放置动作。
 TransferablegetTransferable()
          返回与此传输关联的 Transferable
 intgetUserDropAction()
          当此 TransferSupport 表示一个放置操作时,返回其用户放置动作。
 booleanisDataFlavorSupported(DataFlavor df)
          返回是否支持给定的数据 flavor。
 booleanisDrop()
          返回此 TransferSupport 是否表示一个放置操作。
 voidsetDropAction(int dropAction)
          将传输(必须表示一个放置操作)的放置动作设置为给定动作,而不是默认的用户放置动作。
 voidsetShowDropLocation(boolean showDropLocation)
          设置是否应该为传输(必须表示一个放置操作)可视地指出放置位置。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

TransferHandler.TransferSupport

public TransferHandler.TransferSupport(Component component,
                                       Transferable transferable)
使用给定组件和 Transferable 创建一个 TransferSupport,对于该 TransferSupportisDrop() 返回 false

参数:
component - 目标组件
transferable - transferable
抛出:
NullPointerException - 如果任一参数为 null
方法详细信息

isDrop

public boolean isDrop()
返回此 TransferSupport 是否表示一个放置操作。

返回:
如果这是一个放置操作,则返回 true;否则返回 false

getComponent

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

返回:
目标组件

getDropLocation

public TransferHandler.DropLocation getDropLocation()
TransferSupport 表示一个放置操作时,返回组件的当前放置位置(非 null)。

注:对于带内置放置操作支持的组件,此位置将是一个 DropLocation 的子类,该 DropLocation 的类型与该组件的 getDropLocation 方法返回的相同。

此方法只用于拖放传输。isDrop()false 时调用此方法将导致 IllegalStateException

返回:
放置位置
抛出:
IllegalStateException - 如果此 TransferSupport 不是一个放置操作
另请参见:
isDrop

setShowDropLocation

public void setShowDropLocation(boolean showDropLocation)
设置是否应该为传输(必须表示一个放置操作)可视地指出放置位置。此方法用于那些在拖放操作过程的适当时候能够自动显示放置位置的组件。默认情况下,只有在 TransferHandler 已声明它能够接受此 TransferSupport 表示的导入时才显示放置位置。使用此方法,可以将放置位置强制改为总是显示,或总是不显示。

此方法只用于拖放传输。isDrop()false 时调用此方法将导致 IllegalStateException

参数:
showDropLocation - 是否指示放置位置
抛出:
IllegalStateException - 如果此 TransferSupport 不是一个放置操作
另请参见:
isDrop

setDropAction

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

此方法只用于拖放传输。isDrop()false 时调用此方法将导致 IllegalStateException

参数:
dropAction - 放置动作
抛出:
IllegalStateException - 如果此 TransferSupport 不是一个放置操作
IllegalArgumentException - 如果指定了无效的动作
另请参见:
getDropAction(), getUserDropAction(), getSourceDropActions(), isDrop

getDropAction

public int getDropAction()
当此 TransferSupport 表示放置操作时,返回为其选择的动作。

除非通过 setDropAction 显式地选择,否则此方法返回 getUserDropAction 提供的用户放置动作。

可以使用 TransferHandlerimportData 方法查询此动作,以便根据该动作自定义处理方法。

此方法只用于拖放传输。isDrop()false 时调用此方法将导致 IllegalStateException

返回:
为放置操作选择的动作 throws IllegalStateException 如果此 TransferSupport 不是一个放置操作
另请参见:
setDropAction(int), getUserDropAction(), isDrop