2017-10-14 193 views
0

语境是否可以检查拖放操作(java中)的源/目标是否相同?

我想创建一个Matlab的一个列表框组件中,我可以重新排列物品,只使用鼠标手势一些资源管理器窗口拖放文件。

这样的组件似乎不存在,所以我需要创建自己的。我发现了两个有趣的指针从FileExchange开始:

我这样想合并这两个创建自定义列表框,我需要,也对触发的事件创建一个更通用的dndcontrol这样我就可以重新使用这个用于其他用途(支持图像,更好的控制,等等...)

问题

在某些时候,我需要知道,如果启动拖动操作的源组件相同将接收拖放操作的目标组件。例如,,但不只是专注于这种特殊情况,我可以让我的列表框从其自身(对于项目重新排序等)接收文本传输,但不能从其他组件(例如从其他组件拖动文本或窗口)。

阅读方法和属性DropTargetDragEventDropTargetDropEvent事件我可以从DropTarget听众收到它似乎不可能知道这一点。我唯一能找到的就是isLocalTransfer,但这只能表明源和目标是否在同一个JVM中(并且只能在下载时使用,而不是在拖动过程中)。

问题

我想我可以管理我的自定义列表框的特定情况下,砍,反正是有使用Java更标准/通用的方式知道,如果源和目标是相同的在拖放操作?

NB1:也许我在想安装某种阻力听众的,因为我是能够连接下降监听器(即DropTarget),但我不知道这是否存在。

NB2:对不起,我对Java编程和dnd处理非常陌生。我希望我给出的解释能帮助理解我想达到的目标。

回答

0

除了DropTarget侦听器之外,只需在MousePressedMouseReleased事件中添加回调即可。如果在两者之间接收到拖动事件,则肯定控制既是源又是目标。早些时候应该对我自己提出倾诉。