- 封装类:
-
TransferHandler
该类的主要目的是为开发人员提供确定传输的适用性或导入其中包含的数据所需的信息。但它也可以作为自定义拖放属性的控制器,例如是否显示放置位置以及使用哪种放置操作。
开发人员通常不需要创建此类的实例。相反,它们是由DnD实现提供给TransferHandler
中的某些方法的内容。
- 自JDK版本:
- 1.6
- 参见:
-
Constructor Summary
ConstructorDescriptionTransferSupport
(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是否受支持。boolean
isDrop()
返回此TransferSupport
是否表示放置操作。void
setDropAction
(int dropAction) 将传输的放置操作设置为给定操作,而不是默认的用户放置操作。传输必须表示一个放置操作。void
setShowDropLocation
(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
-