Java Swing-如何添加Crtl+;点击按钮

Java Swing-如何添加Crtl+;点击按钮,java,swing,user-interface,Java,Swing,User Interface,我想在一个简单的计算器上添加一个快捷方式选项,即使用Ctrl键+JButton单击鼠标。我知道如何使用按键输入Ctrl+C,但我不知道如何使用鼠标点击按钮。 以下是我所拥有的: private void displayCopyRight() { buttons[13].setAction(new AbstractAction("" + button_Shapes[13]) { { putValue(Action.ACTION_COMMAND_KEY

我想在一个简单的计算器上添加一个快捷方式选项,即使用Ctrl键+
JButton
单击鼠标。我知道如何使用按键输入Ctrl+C,但我不知道如何使用鼠标点击按钮。 以下是我所拥有的:

private void displayCopyRight() {
    buttons[13].setAction(new AbstractAction("" + button_Shapes[13]) {
        {
            putValue(Action.ACTION_COMMAND_KEY, getValue(Action.NAME));
        }

        public void actionPerformed(ActionEvent e){
            display.setText("[c] Khoa-Nguyen");
        }
    });

    int c = JComponent.WHEN_IN_FOCUSED_WINDOW;
    KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK);
    buttons[13].getInputMap(c).put(ks, button_Shapes[13]);
    buttons[13].getActionMap().put(button_Shapes[13], buttons[13].getAction());        
}

这只会将键盘上的Ctrl+字母C绑定在一起。我要做的是使用鼠标绑定Ctrl+JButton单击。按钮[13]是字母C作为JButton。请提供帮助。

您可以尝试检查ActionEvent的modifiers属性。这是一个掩码字段,如果按住Ctrl键,则可以测试修改器字段的ActionEvent.Ctrl\u掩码

public void actionPerformed(ActionEvent e){
   if ((ActionEvent.CTRL_MASK & e.getModifiers()) != 0){
      // Do your action here
   }
}

欢迎来到SO,请访问并阅读。阅读一些文档、教程和/或博客,然后提供一些代码,说明您尝试执行的操作以及代码中存在的问题。按下“Ctrl”时,使用全局键绑定或键侦听器切换公共布尔变量,然后在操作/单击事件中,您只需检查该布尔变量是否为真或假,然后相应地执行操作。
我想添加一个快捷方式选项,即使用Ctrl键+JButton单击
——这不是快捷方式。Ctrl-C是键盘的快捷键,因为按钮不需要焦点。Ctrl单击按钮不是快捷方式,因为无论如何都需要单击按钮,所以为什么还要强制用户按住Ctrl键呢?