2010-03-11 222 views
9

我需要在擺動中創建一個拖放系統,拖動過程中將拖動的東西的圖像附加到光標上。從理論上講,這是achieveable與拖放圖像

public Icon TransferHandler.getVisualRepresentation(Transferable t) 

但似乎是一個長期存在的BUG(here),這意味着該方法不會被調用。我知道我可以通過使用DragSource等來實現我自己的DnD系統來做到這一點,但是有沒有人知道更簡單的workround會讓我得到我需要的東西?

回答

2

最後我用舊式的拖放來實現我想要的東西。然而,我沒有理由認爲abrightwell的解決方案不會起作用 - 這只是當時最好的方式。

3

java 1.4中不支持方法TransferHandler.getVisualRepresentation,我不確定是否或何時修復。要測試它是否可以在當前版本中運行,您可以採用這種方式example

+1

它在我所擁有的Mac版本1.6.0中沒有修復。 – DJClayworth

1

我已經使用了針對您列出的錯誤報告底部的「解決方法」。它對我來說足夠好用了。當然,我在Mac OS X上使用它,所以我不知道Winderz是否會支持它。如果他們至少能夠按照他們的意圖進行工作並簡單地記錄下它的位置並且不會起作用,那就太好了。祝你好運。

2

您可以嘗試將圖像放在Jlabel上(在draggesture識別器中)並在droptargetListener dragover方法中設置其邊界。或者,關於實現一個Mouse偵聽器(我還沒有測試過這種方法)。