- 所有超接口:
-
EventListener
- 所有已知实现类:
-
DropTarget,DropTargetAdapter
DropTargetListener接口是由DropTarget类使用的回调接口,用于提供涉及主题DropTarget的DnD操作的通知。可以实现此接口的方法以提供“拖动下方”视觉反馈,以便在整个拖放操作期间向用户提供反馈。
通过实现接口创建一个监听器对象,然后将其注册到DropTarget中。当拖动进入、移动或退出该DropTarget的可操作部分时,当拖放操作更改时,以及当发生拖放时,将调用监听器对象中的相关方法,并将DropTargetEvent传递给它。
DropTarget的可操作部分是关联Component的几何形状的一部分,不被重叠的顶层窗口或由具有关联活动DropTarget的Z顺序较高的另一个Component所遮挡。
在拖动过程中,可以通过在传递给监听器方法的DropTargetDragEvent实例上调用getTransferable()来检索与当前拖动操作相关联的数据。
请注意,在DropTargetDragEvent实例上调用getTransferable()应仅在相应的监听器方法内调用,并且在该方法返回之前应从返回的Transferable中检索所有必要的数据。
- 自 JDK 版本:
- 1.2
-
Method Summary
Modifier and TypeMethodDescriptionvoiddragEnter(DropTargetDragEvent dtde) 当拖动操作正在进行时调用,当鼠标指针进入已向此监听器注册的DropTarget的可操作部分时。voiddragExit(DropTargetEvent dte) 当拖动操作正在进行时调用,当鼠标指针已退出已向此监听器注册的DropTarget的可操作部分时。voiddragOver(DropTargetDragEvent dtde) 当拖动操作正在进行时调用,当鼠标指针仍位于已向此监听器注册的DropTarget的可操作部分上方时。voiddrop(DropTargetDropEvent dtde) 当拖动操作以在已向此监听器注册的DropTarget的可操作部分上进行放置而终止时调用。void如果用户修改了当前的放置手势,则调用。
-
Method Details
-
dragEnter
当拖动操作正在进行时调用,当鼠标指针进入已向此监听器注册的DropTarget的可操作部分时。- 参数:
-
dtde-DropTargetDragEvent
-
dragOver
当拖动操作正在进行时调用,当鼠标指针仍位于已向此监听器注册的DropTarget的可操作部分上方时。- 参数:
-
dtde-DropTargetDragEvent
-
dropActionChanged
如果用户修改了当前的放置手势,则调用。- 参数:
-
dtde-DropTargetDragEvent
-
dragExit
当拖动操作正在进行时调用,当鼠标指针已退出已向此监听器注册的DropTarget的可操作部分时。- 参数:
-
dte-DropTargetEvent
-
drop
当拖动操作以在已向此监听器注册的DropTarget的可操作部分上进行放置而终止时调用。此方法负责执行与手势相关联的数据传输。
DropTargetDropEvent提供了一种获取代表要传输的数据对象的Transferable对象的方法。从此方法开始,
DropTargetListener应通过DropTargetDropEvent参数的acceptDrop(int dropAction)或rejectDrop()方法接受或拒绝放置。在acceptDrop()之后,但在之前,可以调用
DropTargetDropEvent的getTransferable()方法,并且可以通过返回的Transferable的getTransferData()方法执行数据传输。在放置完成后,此方法的实现需要通过向
DropTargetDropEvent的dropComplete(boolean success)方法传递适当的boolean来表示放置的成功/失败。注意: 数据传输应在调用
DropTargetDropEvent的dropComplete(boolean success)方法之前完成。之后,仅当数据传输为本地时,即仅当DropTargetDropEvent.isLocalTransfer()返回true时,才保证通过DropTargetDropEvent.getTransferable()返回的Transferable的getTransferData()方法成功。否则,调用的行为取决于实现。- 参数:
-
dtde-DropTargetDropEvent
-