【发布时间】:2012-12-02 20:36:26
【问题描述】:
我有一个 JPanel,上面有 2 个以上的 JLable,我希望能够抓取一个标签,然后将其移动到 JPanel 上的不同位置。我怎样才能做到这一点?我唯一能找到的就是将标签从组件“A”移动到组件“B”,而不是在面板上移动它。
【问题讨论】:
-
考虑使用 MouseListener 和 MouseMotionListener 并给 JPanel 一个(颤抖的)空布局。如果你玩这个,你可能会取得进步。
-
好的,所以我让它移动了,但它移动得很奇怪。我正在使用“mouseDragged()”,其中:
int y = evt.getY();this.setBounds(0, y, 198, 50);但是当它移动时它会摇晃,并且不会移动到鼠标在面板中所在的位置。任何想法为什么? -
那么你没有正确实现它。考虑创建并发布一个 sscce 来证明您的问题。
-
我知道了,我用的是鼠标在标签上的y位置,我应该一直用鼠标在面板上的y位置。
-
@HovercraftFullOfEels 从未想过您会建议使用
null布局。我会推荐DragLayout
标签: java swing drag-and-drop jlabel