如何检查在Swing中是否按下鼠标按钮以及在Swing中按下哪个鼠标按钮
如何检查当前是否有任何鼠标按钮被按下,如果有,是哪一个?如何检查在Swing中是否按下鼠标按钮以及在Swing中按下哪个鼠标按钮
事情是我需要使用这种信息在MouseListener.mouseEntered()
。我检查了MouseEvent
,但我找不到能帮助我的方法。
getButton()
方法似乎只在按钮状态发生变化时才返回值。
有没有办法找到这个,而不用手动跟踪这个方法,以某种方式与MouseListener.mousePressed()/mouseReleased()
方法。
如何检查当前是否有任何鼠标按钮被按下,如果是,哪一个是按下的?
大概你要取决于挤压,从而你可以做一些类似的按钮来调用特定代码:
if (SwingUtilities.isLeftMouseButton(...))
// do something
你可以通过查看How to write a Mouse Listener特别是JavaDocs for MouseEvent,该getButton方法开始。
然而,有一些需要考虑的,这是由SwingUtilities.isLeftMouseButton和等效方法痊愈了跨平台的考虑...
这将解决你的问题
long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK;
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
public void eventDispatched(AWTEvent e) {
System.out.println(e.paramString()+"-"+e.getSource());
}
}, eventMask);
从AWTEvent
获取源代码和按钮,并执行任何您想要执行的操作。
而按钮? – MadProgrammer
这是'paramString' ** MOUSE_ENTERED,(470,268),绝对值(470,268),按钮= 0,clickCount = 0 **的值之一。现在我们可以获得鼠标事件类型,鼠标位置,按钮以及点击次数。 – Braj
不要告诉我,告诉OP;) – MadProgrammer
如何在鼠标输入事件时获得鼠标按钮。如果按钮被点击,它将成为一个鼠标拖动事件。尝试'addMouseMotionListener'而不是'addMouseListener'。 – Braj
@NicolásCarlo'getModifiers'会告诉你什么键在鼠标事件发生时是活动的(这是一个'InputEvent'的方法),'getButton'会告诉你哪些按钮在事件发生时是活动的,但是'SwingUtilities.isXxxButton'是一种安全的跨平台机制,通常推荐使用这种机制来确定哪些按钮实际上被按下了。 – MadProgrammer