2010-11-27 149 views
3

我有一個圖像節點的網格佈局,我想在應用程序中添加dnd功能,例如,當我將圖像節點拖放到目標JPanel做一些動作,例如以原始大小顯示,刪除等。我已經通過轉移處理程序和DropTargets,DragSource等方式實現了這一點。但是我有兩個問題,我希望與您討論。Java拖放圖像並拖動時顯示圖像縮略圖

a)哪種方式更好用?我明白,第二種方式給我比TransferHandler更多的功能,第一種方式最簡單。但是我可以用這兩種方式來完成我的工作,更有效的是兩種,或者我更喜歡編碼。

b)發生拖動時,我想在光標附近顯示圖像。我做的第一個是使用JFrame的glassPane並創建一個JCompoment,它繪製正確的圖像並按照光標。我可以用這種方式做出來嗎?在這之後,我在文檔中看到DragSource的startDrag方法得到一個dragImage參數,這是出於我想要的原因,我嘗試傳遞一個Image但我沒有看到任何結果。

--------------更新---------------------

對於第二個問題(b )我嘗試使用glasspane,但在java DND和我的偵聽器之間的交互操作中遇到問題,無法在glasspane中顯示圖像大拇指。每次只有其中一個正常工作。

!!! 更具體地說,當我已經調用startDrag()方法時沒有觸發mouseDragged事件

謝謝你的時間。

回答

0

解決

最後,我找到了自己的解決方案。

如果任何人有同樣的問題,我說的重點是,在startDrag()方法激發所有mouseDraged事件後,dragMouseMoved()(從DragSourceMotionListener),並使錯誤也使用「void mouseDragged( MouseEvent e)「來自MouseMotionListener。