我想检查某个javax.swing.JButton
(常规按钮)是否被按下(在它被释放之前)。是否有任何选项可以检查按钮是否已按下?
最简单的解决方案是添加一个MouseListener
,它将响应鼠标点击并释放事件。但是,这并不包括通过Enter键或任何其他方式激活按钮的情况。我不想通过键盘或其他方式禁用激活鼠标-我只是想知道什么时候按下鼠标而不限制它的行为。
我试着听所有不同的事件,只有两个响应按钮按下是ActionPreformed (ActionEvent
)和StateChanged (ChangedEvent
)事件。actionpreform每次点击执行一次,这意味着只有在按钮被按下并释放之后才执行,所以它不是很好。当我单击一个按钮时,statechange确实会被调用几次,当我释放它时也会调用几次。但是,事件对象只包含有关源小部件(按钮)的信息,而不包含有关状态更改本身的信息。这可以防止区分我们想要捕获的事件。
提前感谢!
ButtonModel可以做到这一点,这里或这里更多,或者可能偏离主题。ChangeListener & @kleopatra