我想创建一个Matlab的一个列表框组件中,我可以重新排列物品,只使用鼠标手势一些资源管理器窗口拖放文件。
这样的组件似乎不存在,所以我需要创建自己的。我发现了两个有趣的指针从FileExchange开始:
- Reorderable Listbox:通过拖动项目重新排序支持。
- dndcontrol:支持从某个浏览器窗口拖动文件。
我这样想合并这两个创建自定义列表框,我需要,也对触发的事件创建一个更通用的dndcontrol这样我就可以重新使用这个用于其他用途(支持图像,更好的控制,等等...)
问题
在某些时候,我需要知道,如果启动拖动操作的源组件相同将接收拖放操作的目标组件。例如,,但不只是专注于这种特殊情况,我可以让我的列表框从其自身(对于项目重新排序等)接收文本传输,但不能从其他组件(例如从其他组件拖动文本或窗口)。
阅读方法和属性DropTargetDragEvent和DropTargetDropEvent事件我可以从DropTarget听众收到它似乎不可能知道这一点。我唯一能找到的就是isLocalTransfer,但这只能表明源和目标是否在同一个JVM中(并且只能在下载时使用,而不是在拖动过程中)。
问题
我想我可以管理我的自定义列表框的特定情况下,砍,反正是有使用Java更标准/通用的方式知道,如果源和目标是相同的在拖放操作?
NB1:也许我在想安装某种阻力听众的,因为我是能够连接下降监听器(即DropTarget
),但我不知道这是否存在。
NB2:对不起,我对Java编程和dnd处理非常陌生。我希望我给出的解释能帮助理解我想达到的目标。