如何检测Mac OS的右键单击事件

Sun*_*hoo 6 java macos

对于Windows和Linux,我能够检测到右键单击.但对于mac我不知道如何检测右键单击.

如何编写java程序来检测Mac OS的右键单击

谢谢Sunil KUmar Sahoo

cam*_*ckr 15

不使用MouseEvent.BUTTON3,而是使用更好的自我文档化方法

if (SwingUtilities.isRightMouseButton(event))
   // do something
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用此代码显示弹出菜单,则不应使用此方法,因为每个操作系统都有不同的击键来启动弹出菜单.阅读关于启动弹出菜单的Swing教程中的部分.


hbw*_*hbw 7

这与检测Windows或Linux上的右键单击相同 - 您调用给定的MouseEvent getButton()方法来检查是否BUTTON3被单击.例如,看一下示例MouseListener的以下片段:

public class MyListener implements MouseListener
{
    // ... code ...

    public void mouseClicked(MouseEvent event)
    {
        if (event.getButton() == MouseButton.BUTTON3)
        {
            // Right-click happened
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果用户实际上有一个双键鼠标,则只检测右键单击.由于大多数Mac鼠标在不久之前只有一个按钮,因此您可能还需要考虑检测控制点击(这是当时右键单击的常用习惯用法).如果您决定这样做,那么实现非常简单:只需添加另一个检查if if event.isControlDown()返回true.

  • 仅供参考在Mac上生成真正的右键单击,双击手指触控板. (2认同)