2017-10-14 104 views
0

語境是否可以檢查拖放操作(java中)的源/目標是否相同?

我想創建一個Matlab的一個列表框組件中,我可以重新排列物品,只使用鼠標手勢一些資源管理器窗口拖放文件。

這樣的組件似乎不存在,所以我需要創建自己的。我發現了兩個有趣的指針從FileExchange開始:

我這樣想合併這兩個創建自定義列表框,我需要,也對觸發的事件創建一個更通用的dndcontrol這樣我就可以重新使用這個用於其他用途(支持圖像,更好的控制,等等...)

問題

在某些時候,我需要知道,如果啓動拖動操作的源組件相同將接收拖放操作的目標組件。例如,,但不只是專注於這種特殊情況,我可以讓我的列表框從其自身(對於項目重新排序等)接收文本傳輸,但不能從其他組件(例如從其他組件拖動文本或窗口)。

閱讀方法和屬性DropTargetDragEventDropTargetDropEvent事件我可以從DropTarget聽衆收到它似乎不可能知道這一點。我唯一能找到的就是isLocalTransfer,但這隻能表明源和目標是否在同一個JVM中(並且只能在下載時使用,而不是在拖動過程中)。

問題

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

NB1:也許我在想安裝某種阻力聽衆的,因爲我是能夠連接下降監聽器(即DropTarget),但我不知道這是否存在。

NB2:對不起,我對Java編程和dnd處理非常陌生。我希望我給出的解釋能幫助理解我想達到的目標。

回答

0

除了DropTarget偵聽器之外,只需在MousePressedMouseReleased事件中添加回調即可。如果在兩者之間接收到拖動事件,則肯定控制既是源又是目標。早些時候應該對我自己提出傾訴。

相關問題