- java.lang.Object
-
- javax.swing.TransferHandler.TransferSupport
-
- Enclosing class:
- TransferHandler
public static final class TransferHandler.TransferSupport extends Object
此类封装了剪贴板或拖放传输的所有相关详细信息,还允许自定义拖放体验的各个方面。此类的主要目的是提供开发人员所需的信息,以确定传输的适用性或导入其中包含的数据。 但它也兼作控制器,用于在拖放期间自定义属性,例如是否显示放置位置以及要使用的放置操作。
开发人员通常不需要创建此类的实例。 相反,它们是由DnD实现提供给
TransferHandler
某些方法的TransferHandler
。
-
-
构造方法摘要
构造方法 构造器 描述 TransferSupport(Component component, Transferable transferable)
创建TransferSupport
与isDrop()
false
给定组件和Transferable
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Component
getComponent()
返回此传输的目标组件。DataFlavor[]
getDataFlavors()
返回此传输的数据flavor。int
getDropAction()
当TransferSupport
表示下降时,返回为drop选择的操作。TransferHandler.DropLocation
getDropLocation()
当此TransferSupport
表示下降时,返回组件的当前(非null
)放置位置。int
getSourceDropActions()
当此TransferSupport
表示下降时,返回拖动源支持的放置操作。Transferable
getTransferable()
返回与此传输关联的Transferable
。int
getUserDropAction()
当TransferSupport
代表丢弃时,返回drop的用户放置操作。boolean
isDataFlavorSupported(DataFlavor df)
返回是否支持给定的数据flavor。boolean
isDrop()
返回此TransferSupport
是否表示放置操作。void
setDropAction(int dropAction)
将传输的放置操作(必须表示放置)设置为给定操作,而不是默认的用户放置操作。void
setShowDropLocation(boolean showDropLocation)
设置是否应在视觉上指示放置位置 - 必须代表放置。
-
-
-
构造方法详细信息
-
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)
将传输的放置操作(必须表示放置)设置为给定操作,而不是默认的用户放置操作。 该行动必须由源的放置动作的支持,并且必须是一个COPY
,MOVE
或LINK
。此方法仅适用于拖放传输。 致电
isDrop()
时,请isDrop()
false
结果为IllegalStateException
。- 参数
-
dropAction
- 放置动作 - 异常
-
IllegalStateException
- 如果这不是一滴 -
IllegalArgumentException
- 如果指定了无效操作 - 另请参见:
-
getDropAction()
,getUserDropAction()
,getSourceDropActions()
,isDrop()
-
getDropAction
public int getDropAction()
当TransferSupport
表示下降时,返回为drop选择的操作。除非通过
setDropAction
明确选择,否则返回getUserDropAction
提供的用户放弃操作。您可能希望在
TransferHandler
的importData
方法中查询此信息,以根据操作自定义处理。此方法仅适用于拖放传输。 致电
isDrop()
时,请isDrop()
false
结果为IllegalStateException
。- 结果
- 为下降选择的行动
- 异常
-
IllegalStateException
- 如果这不是一滴 - 另请参见:
-
setDropAction(int)
,getUserDropAction()
,isDrop()
-
getUserDropAction
public int getUserDropAction()
当TransferSupport
代表丢弃时,返回drop的用户放置操作。如
DropTargetDragEvent
和DropTargetDropEvent
的文档中所述,为drop选择了用户放置操作。 可以通过setDropAction
方法选择不同的动作作为放下动作。在确定放置的适用性或决定放下操作以明确选择时,您可能希望在
TransferHandler
的canImport
方法中查询此信息。此方法仅适用于拖放传输。 当
isDrop()
是false
时,请isDrop()
IllegalStateException
。- 结果
- 用户放弃操作
- 异常
-
IllegalStateException
- 如果这不是一滴 - 另请参见:
-
setDropAction(int)
,getDropAction()
,isDrop()
-
getSourceDropActions
public int getSourceDropActions()
当此TransferSupport
表示放置时,返回拖动源支持的放置操作。源操作表示该集合由该传送源支持的动作,和被表示为一些按位或组合的
COPY
,MOVE
和LINK
。 在确定放置的适用性或决定放下操作以明确选择时,您可能希望在TransferHandler
的canImport
方法中查询此信息。 要确定源是否支持特定操作,请使用源删除操作按位-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
-
-