Swing mouseDragged事件判断鼠标是哪个键的方法
## 问题背景在使用`mouseDragged`处理拖动事件时,如果还想限定是鼠标哪个键,一般会想到以下方法```javatopBox.addMouseMotionListener(new MouseMotionAdapter() {@Overridepublic void mouseDragged(MouseEvent e) {if (e.getButton() != MouseEvent.BU
·
问题背景
在使用mouseDragged处理拖动事件时,如果还想限定是鼠标哪个键,一般会想到以下方法
topBox.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if (e.getButton() != MouseEvent.BUTTON1) return;
...
}
});
上面的代码看起来没什么问题,但实际上,mouseDragged的MouseEvent 事件的getButton方法只会返回0,也就是MouseEvent.NONBUTTON,那这可咋整啊?
解决方案
幸好,SwingUtilities类为我们提供了以下方法,分别准确地判断左、右、中三个键,即使上面的e.getButton()一直为0,传进来就能准确得到是鼠标哪个键
SwingUtilities.isLeftMouseButton(e);
SwingUtilities.isRightMouseButton(e);
SwingUtilities.isMiddleMouseButton(e);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)