我想創建一個Matlab的一個列表框組件中,我可以重新排列物品,只使用鼠標手勢一些資源管理器窗口拖放文件。
這樣的組件似乎不存在,所以我需要創建自己的。我發現了兩個有趣的指針從FileExchange開始:
- Reorderable Listbox:通過拖動項目重新排序支持。
- dndcontrol:支持從某個瀏覽器窗口拖動文件。
我這樣想合併這兩個創建自定義列表框,我需要,也對觸發的事件創建一個更通用的dndcontrol這樣我就可以重新使用這個用於其他用途(支持圖像,更好的控制,等等...)
問題
在某些時候,我需要知道,如果啓動拖動操作的源組件相同將接收拖放操作的目標組件。例如,,但不只是專注於這種特殊情況,我可以讓我的列表框從其自身(對於項目重新排序等)接收文本傳輸,但不能從其他組件(例如從其他組件拖動文本或窗口)。
閱讀方法和屬性DropTargetDragEvent和DropTargetDropEvent事件我可以從DropTarget聽衆收到它似乎不可能知道這一點。我唯一能找到的就是isLocalTransfer,但這隻能表明源和目標是否在同一個JVM中(並且只能在下載時使用,而不是在拖動過程中)。
問題
我想我可以管理我的自定義列表框的特定情況下,砍,反正是有使用Java更標準/通用的方式知道,如果源和目標是相同的在拖放操作?
NB1:也許我在想安裝某種阻力聽衆的,因爲我是能夠連接下降監聽器(即DropTarget
),但我不知道這是否存在。
NB2:對不起,我對Java編程和dnd處理非常陌生。我希望我給出的解釋能幫助理解我想達到的目標。