代码之家  ›  专栏  ›  技术社区  ›  DJClayworth

使用图像拖放

  •  9
  • DJClayworth  · 技术社区  · 16 年前

    我需要在swing中创建一个拖拽系统,在拖拽过程中,被拖拽对象的图像会附着到光标上。理论上这是可以实现的

    public Icon TransferHandler.getVisualRepresentation(Transferable t)
    

    但似乎有一种长期存在的虫子( here )这意味着这个方法永远不会被调用。我知道我可以用dragsource等实现自己的dnd系统,但是有人知道一个更简单的解决方案,可以满足我的需要吗?

    4 回复  |  直到 14 年前
        1
  •  3
  •   stacker    16 年前

    方法 TransferHandler.getVisualRepresentation 在Java 1.4中不支持,我不确定它是否或何时被修复。为了测试它是否在当前版本中工作,您可以修改这个 example

        2
  •  2
  •   DJClayworth    16 年前

    最后,我使用了老式的拖放来实现我想要的。不过,我没有理由认为Abrightwell的解决方案不会起到同样的作用——这只是当时最好的方法。

        3
  •  2
  •   MikeColfs    14 年前

    您可以尝试将图像放在jlabel(在draggesture识别器中)上,并在droptargetlistener dragover方法中设置其边界。或者,如何实现鼠标侦听器(我还没有测试后一种方法)。

        4
  •  1
  •   abrightwell    16 年前

    我使用了你列出的bug报告底部建议的“解决方法”。这对我来说已经足够有效了。如果我在MacOSX上使用这个,那么我不知道Winderz是否会支持它。如果他们至少能把它修复成他们想要的那样,并且简单地记录下它将在哪里工作,在哪里不工作,那就太好了……哦,好吧。祝你好运。