拖放图片功能实现方法

9

我需要在swing中创建一个拖放系统,在拖动期间,被拖动的物品的图像将附加到光标上。理论上,这可以通过使用

public Icon TransferHandler.getVisualRepresentation(Transferable t)

但是似乎存在一个长期存在的bug(这里),导致这个方法从未被调用。我知道我可以通过实现自己的DnD系统来完成它,使用DragSource等,但是有没有人知道更简单的解决方法,可以帮我得到我需要的结果?

4个回答

3

TransferHandler.getVisualRepresentation 方法在 Java 1.4 中不被支持,我不确定它是否已经修复。要测试它在当前版本中是否可用,您可以参考此 示例 进行适应。


1
我的版本是 Mac 1.6.0,问题并未在此版本中得到修复。 - DJClayworth

2
最终,我使用了旧款拖放方式来实现我想要的功能。然而,我没有理由认为abrightwell的解决方案不会同样有效 - 这只是当时最好的方法。

2
您可以尝试在拖拽识别器的JLabel上放置图像,并在droptargetListener dragover方法中设置其边界。或者,您可以实现一个鼠标监听器(我没有测试过后一种方法)。

1

我已经使用了您列出的错误报告底部建议的“解决方法”。对我来说,它足够好用。当然,我是在 Mac OS X 上使用它,所以我不知道 Winderz 是否支持它。如果他们至少能修复它,让它像他们想象的那样工作,并简单地记录它将在哪里工作和哪里不工作,那就太好了... 好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接