public interface DropTargetListener extends EventListener
DropTargetListener
接口是DropTarget
课程用于提供涉及主题DropTarget
的DnD操作通知的回调DropTarget
。
可以实现该接口的方法,以在整个拖放操作中向用户提供“拖动”视觉反馈。
通过实现接口创建一个侦听器对象,然后用它注册DropTarget
。 当拖动进入,移过或退出放置点为的可操作部分DropTarget
,下落动作变化时,并且当发生跌落,在收听对象中的相关方法被调用,并且DropTargetEvent
传递给它。
DropTarget
的放置站点的可操作部分是相关联的Component
的几何体的一部分,它不被重叠的顶层窗口或另一个具有相关联的活动DropTarget
的Z顺序的另一个Component
DropTarget
。
在拖动期间,可以通过调用传递给侦听器方法的getTransferable()
上的DropTargetDragEvent
来检索与当前拖动操作相关联的数据。
请注意, getTransferable()
实例上的DropTargetDragEvent
应该仅在相应的侦听器方法中调用,并且所有必需的数据应该在该方法返回之前从返回的Transferable
。
Modifier and Type | Method and Description |
---|---|
void |
dragEnter(DropTargetDragEvent dtde)
当拖动操作正在进行时,当鼠标指针进入为此侦听器注册的
DropTarget 的放置站点的可操作部分时调用。
|
void |
dragExit(DropTargetEvent dte)
当拖动操作正在进行时,当鼠标指针已经退出注册到此侦听器的
DropTarget 的放置站点的可操作部分时调用。
|
void |
dragOver(DropTargetDragEvent dtde)
当拖动操作正在进行时被调用,而鼠标指针仍然位于为该监听器注册的
DropTarget 的放置站点的可操作部分。
|
void |
drop(DropTargetDropEvent dtde)
当拖放操作已终止时,在该监听器注册的
DropTarget 的可放置站点的可操作部分上下降。
|
void |
dropActionChanged(DropTargetDragEvent dtde)
如果用户修改了当前的放置手势,则被调用。
|
void dragEnter(DropTargetDragEvent dtde)
DropTarget
的放置站点的可操作部分时调用。
dtde
-
DropTargetDragEvent
void dragOver(DropTargetDragEvent dtde)
DropTarget
的放置站点的可操作部分上。
dtde
-
DropTargetDragEvent
void dropActionChanged(DropTargetDragEvent dtde)
dtde
-
DropTargetDragEvent
void dragExit(DropTargetEvent dte)
DropTarget
的放置站点的可操作部分时调用。
dte
-
DropTargetEvent
void drop(DropTargetDropEvent dtde)
DropTarget
的可放置站点的可操作部分下降时调用。
该方法负责进行与手势相关联的数据的传送。 DropTargetDropEvent
提供了一种获取表示要传输的数据对象的Transferable
对象的方法。
从该方法中, DropTargetListener
应接受或拒绝通过所述acceptDrop(INT的dropAction)或rejectDrop液滴()的方法DropTargetDropEvent
参数。
之后acceptDrop(),但在此之前, DropTargetDropEvent
的getTransferable()方法可被调用,并且可以经由返回来执行数据传输Transferable
的getTransferData()方法。
在完成一个下降之后,需要执行此方法来通过将适当的boolean
传递给DropTargetDropEvent
的dropComplete(布尔成功)方法来指示掉落的成功/失败。
注意:在调用DropTargetDropEvent
的dropComplete(boolean success)方法之前,应该完成数据传输。 之后, Transferable
返回的DropTargetDropEvent.getTransferable()
的getTransferData()方法的调用只有在数据传输是本地时才能保证成功; 也就是说,只有DropTargetDropEvent.isLocalTransfer()
返回true
。 否则,呼叫的行为是依赖于实现的。
dtde
- the
DropTargetDropEvent