- 封装类:
-
TransferHandler
该类的主要目的是为开发人员提供确定传输的适用性或导入其中包含的数据所需的信息。但它也可以作为自定义拖放属性的控制器,例如是否显示放置位置以及使用哪种放置操作。
开发人员通常不需要创建此类的实例。相反,它们是由DnD实现提供给TransferHandler中的某些方法的内容。
- 自JDK版本:
- 1.6
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionTransferSupport(Component component, Transferable transferable) 使用给定组件和Transferable创建一个具有isDrop()为false的TransferSupport。 -
Method Summary
Modifier and TypeMethodDescription返回此传输的目标组件。返回此传输的数据flavors。int返回此TransferSupport表示放置时选择的操作。返回此TransferSupport表示放置时组件的当前(非null)放置位置。int返回此TransferSupport表示放置时拖动源支持的放置操作。返回与此传输关联的Transferable。int返回此TransferSupport表示放置时的用户放置操作。boolean返回给定数据flavor是否受支持。booleanisDrop()返回此TransferSupport是否表示放置操作。voidsetDropAction(int dropAction) 将传输的放置操作设置为给定操作,而不是默认的用户放置操作。传输必须表示一个放置操作。voidsetShowDropLocation(boolean showDropLocation) 设置传输的放置位置是否应在可视化上指示,传输必须表示一个放置操作。
-
Constructor Details
-
TransferSupport
使用给定组件和Transferable创建一个具有isDrop()为false的TransferSupport。- 参数:
-
component- 目标组件 -
transferable- 可传输对象 - 抛出:
-
NullPointerException- 如果任一参数为null
-
-
Method Details
-
isDrop
public boolean isDrop()返回此TransferSupport是否表示放置操作。- 返回:
-
如果这是一个放置操作,则返回
true,否则返回false。
-
getComponent
返回此传输的目标组件。- 返回:
- 目标组件
-
getDropLocation
返回此TransferSupport表示放置时组件的当前(非null)放置位置。注意:对于具有内置放置支持的组件,此位置将是与该组件的
getDropLocation方法返回的相同类型的DropLocation子类。此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 返回:
- 放置位置
- 抛出:
-
IllegalStateException- 如果不是放置操作 - 参见:
-
setShowDropLocation
public void setShowDropLocation(boolean showDropLocation) 设置传输的放置位置是否应在可视化上指示,传输必须表示一个放置操作。这适用于那些在拖放操作期间自动显示放置位置的组件。默认情况下,仅当TransferHandler表示可以接受此TransferSupport所代表的导入时才显示放置位置。使用此方法,您可以强制始终显示放置位置或始终不显示放置位置。此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 参数:
-
showDropLocation- 是否指示放置位置 - 抛出:
-
IllegalStateException- 如果不是放置操作 - 参见:
-
setDropAction
public void setDropAction(int dropAction) 将传输的放置操作设置为给定操作,而不是默认的用户放置操作。操作必须受源放置操作支持,并且必须是COPY、MOVE或LINK中的一个。此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 参数:
-
dropAction- 放置操作 - 抛出:
-
IllegalStateException- 如果不是放置操作 -
IllegalArgumentException- 如果指定了无效操作 - 参见:
-
getDropAction
public int getDropAction()返回此TransferSupport表示放置时选择的操作。除非通过
setDropAction明确选择,否则此方法将返回getUserDropAction提供的用户放置操作。您可能希望在
TransferHandler的importData方法中查询此操作,以根据操作自定义处理。此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 返回:
- 选择的放置操作
- 抛出:
-
IllegalStateException- 如果不是放置操作 - 参见:
-
getUserDropAction
public int getUserDropAction()返回此TransferSupport表示放置时的用户放置操作。用户放置操作是根据
DropTargetDragEvent和DropTargetDropEvent的文档描述为放置选择的操作。可以通过setDropAction方法选择不同的操作作为放置操作。您可能希望在
TransferHandler的canImport方法中查询此操作,以确定放置的适用性或明确选择放置操作。此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 返回:
- 用户放置操作
- 抛出:
-
IllegalStateException- 如果不是放置操作 - 参见:
-
getSourceDropActions
public int getSourceDropActions()返回此TransferSupport表示放置时拖动源支持的放置操作。源操作表示此传输源支持的操作集,并表示为
COPY、MOVE和LINK的一些按位或组合。在确定放置的适用性或明确选择放置操作时,您可能希望在TransferHandler的canImport方法中查询此操作。要确定源是否支持特定操作,请将操作与源放置操作进行按位与运算,然后将结果与原始操作进行比较。例如:boolean copySupported = (COPY & getSourceDropActions()) == COPY;
此方法仅用于拖放传输。当
isDrop()为false时调用它会导致IllegalStateException。- 返回:
- 拖动源支持的放置操作
- 抛出:
-
IllegalStateException- 如果不是放置操作 - 参见:
-
getDataFlavors
返回此传输的数据flavors。- 返回:
- 此传输的数据flavors
-
isDataFlavorSupported
返回给定数据flavor是否受支持。- 参数:
-
df- 要测试的DataFlavor - 返回:
- 给定flavor是否受支持。
-
getTransferable
返回与此传输相关联的Transferable。注意:除非必须直接获取
Transferable,否则请使用此类中的其他方法之一来查询传输情况。这样可能比获取Transferable并直接询问它性能更好。- 返回:
-
与此传输相关联的
Transferable
-