【发布时间】:2015-05-15 21:09:10
【问题描述】:
我已经设置了一个鼠标拖动的监听器。我试图将其设置为您可以单击一个按钮,然后将鼠标拖到其他按钮上以单击其他按钮。我遇到的问题是,当您单击第一个按钮时,它会变成灰色,就像在等待您释放鼠标按钮一样。当您将鼠标从按钮上移开(仍然按住鼠标左键)时,它会恢复到正常颜色,但在松开之前您无法突出显示任何内容。无论如何模拟放开鼠标并“取消单击”按钮以便突出显示其他内容?
【问题讨论】:
-
这样做的根本目的是什么?这些信息可能会为我们提供有关如何实施事物的更好想法。我问的原因是 JButton click 和 MouseListener 是两个完全独立且有些不相关的东西。将它们捆绑在一起有一些陷阱,可以做到这一点的方式将取决于需求。
-
我有一个按钮网格,目的是拖动鼠标并更改悬停按钮的颜色。我得到的是与 MouseMoved 侦听器一起工作,但我无法让鼠标拖动工作,因为(我假设)第一个按钮永远不会被点击。
-
如果您想在 JButton 的“上方”添加 MouseListener,您可能需要为此使用玻璃窗格。然后当设置为可见时,玻璃窗格将窃取鼠标输入,当不再可见时,GUI 上的组件将接收输入。