当前位置: 首页 > 知识库问答 >
问题:

确定是否按下了鼠标中键,而不是alt键

郭琦
2023-03-14

我尝试了java。awt。事件MouseeEvent以及鼠标按钮和修改键。最后我到了一个地步,我被它的行为弄糊涂了。

通常我使用SwingUtilities。isLeftMouseButton(…) 等,以检测按下了哪个鼠标键和

但是如果我按下鼠标中键,

键盘上的一些键似乎与一些鼠标按钮共享相同的事件标志。如何在java中获取鼠标中键?似乎证实了我的假设。

所以我的问题是:有没有一种方法可以检测出哪个鼠标按钮被按下,哪些修改器被真正按下?还是只对条件鼠标事件使用Ctrl和Shift修改键更好?

操作系统:Windows 8,java版本“1.7.0_09”

提前谢谢你


共有1个答案

郑宜民
2023-03-14

关于鼠标中键的问题。。。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6495530,看来Sun/Oracle从2006年就知道了这个问题。。。

对于其他情况(至少是简单的情况),我做以下操作。

@Override
public void mouseClicked(MouseEvent e) {
     if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON2){
         //Do some stuff...
         if (e.isControlDown()) {
             //Do something if control is down
         }else{
             //Something different if it is not down.
         }
     }
}

也有一个类似的辅助工具,用于alt(它不适用于中间按钮,它总是正确的)、Shift和meta(那是OS X键吗?)。

我注意到,如果你想处理双击和单独的单次单击,会出现奇怪的行为,因为Java似乎尊重双击,但也处理单次单击。

 类似资料:
  • 问题内容: 我正在使用Qt Designer构建UI,并且我希望按钮使用不同的修饰符执行不同的操作。因此,我认为我可以调用具有动态字符串属性的函数,这些函数将根据修饰符执行操作。 如果有人知道更简单的方法,我将不胜感激。 问题答案: 看起来您需要做的就是检查按钮处理程序中的keyboardModifiers,并根据需要选择其他操作。可以对各种修饰符进行“或”运算以检查多键组合: PyQt5 : P

  • 问题内容: 有没有一种方法可以检测JavaScript中的鼠标按钮当前是否处于按下状态? 我知道“ mousedown”事件,但这不是我所需要的。按下鼠标按钮后的一段时间,我希望能够检测它是否仍被按下。 这可能吗? 问题答案: 关于Pax的解决方案:如果用户有意或无意地单击了多个按钮,则该按钮将不起作用。不要问我我怎么知道:-(。 正确的代码应如下所示: 通过这样的测试: 如果您想知道按下了什么按

  • 问题内容: 我是Java的初学者,一直在研究如何检测用户是否按下了某个键(例如箭头键)。显然,有很多方法可以做到这一点,我发现此方法应该对我有用: 问题是我不知道什么是KeyEvent。 当我调用该方法并给我举个例子时,谁能告诉我在括号中加什么? PS:不要把我发送到其他站点,我可能已经看过了,他们只是让我更加困惑… 问题答案: public class KeyEvent extends Inpu

  • 我如何判断用户是否从KeyTyped方法内部按下了“Backspace”键?它们的值来自arg0。getKeyChar()不是KeyEvent。字符未定义和arg0。getKeyCode()是KeyEvent。VK_未定义,因为它始终位于键类型化方法内部。我必须使用键释放/键按下方法并标记布尔值吗?哪种方法先触发?释放键还是键入键?

  • 我有一个Java函数,我想在其中测试控制键是否被按住。我该怎么做? 编辑:我正在使用摆动作为gui。

  • 问题内容: Javascript确认弹出窗口,我想显示“是,否”按钮,而不是“确定”和“取消”。 我已经使用了以下vbscript代码: 这仅适用于IE,在FF和Chrome中,但无效。 是否有任何工作来实现此目的? 我也想更改弹出窗口的标题,如在IE中显示“ Windows Internet Explorer”,我想在这里显示我自己的应用程序名称。 问题答案: 不幸的是,没有跨浏览器的支持来打开