gpt4 book ai didi

java - 为什么 MouseEvent.getButton() 会返回 NO_BUTTON?

转载 作者:行者123 更新时间:2023-11-30 09:32:50 25 4
gpt4 key购买 nike

我有类似下面的代码:

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 年,每天有数千名用户,这是该错误首次出现在崩溃报告中。

最佳答案

  1. Java6 and newer version to support only Mouse (Hardware) with three buttons, 有 5buttons 的鼠标(两侧,但从未尝试过或使用那个)

  2. 对于 MouseEvent(也来自 keyboard)使用在 ButtonModel 中实现的方法对于 JButtons JComponents

  3. JButton(可能不适用于所有 JButtons JComponents)已在 API 中正确实现了 Mouse 事件,没有理由将它们相乘添加 MouseListener 的事件,可能存在并发性,或者来自附加的 Listeners

  4. 的无限循环
  5. 我认为 NO_BUTTON 可以返回 AbstractButton,没有 SSCCE 就不知道了

  6. 这发生在 Mac OS X 10.5.8 上的 Java 1.5.0_30 上。

关于java - 为什么 MouseEvent.getButton() 会返回 NO_BUTTON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com