我有类似于以下代码:
JComponent component = ...
component.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
final int button = e.getButton();
System.out.println("button = " + button);
}
});
我今天收到了崩溃报告,该崩溃报告是由于e.getButton()返回0(即NO_BUTTON)引起的。可能是什么原因?鼠标如何单击没有按钮?
这是在Mac OS X 10.5.8上的Java 1.5.0_30上发生的。
有问题的代码已经生产了4年,每天都有成千上万的用户,这是该错误第一次出现在崩溃报告中。
最佳答案
Java6 and newer version
仅支持具有三个按钮的鼠标(Hardware
),有具有5个按钮的鼠标(两侧,但从不尝试或使用该按钮)
(也来自MouseEvent
)使用keyboard
中实现的方法JButtons JComponents
(可能并非对所有JButton
都有效)已在API中正确实现了JButtons JComponents
,没有理由将这些事件与添加Mouse event
相乘,也许有并发性,或者来自附加的MouseListener
的endles循环
我认为Listeners
可以返回NO_BUTTON
,没有AbstractButton
也不知道
请为SSCCE
还有其他内容
关于java - 为什么MouseEvent.getButton()返回NO_BUTTON?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12477151/