猿问

Swing - 如何添加 Crtl + JButton 单击

我想在一个简单的计算器上添加一个使用Ctrl键 +JButton单击鼠标的快捷选项。我知道如何输入Ctrl+ CusingKeyStroke但我不知道如何JButton使用鼠标单击来完成。这是我所拥有的:


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。请帮忙。


狐的传说
浏览 129回答 1
1回答

慕的地6264312

您可以尝试检查 ActionEvent 的修饰符属性。它是一个掩码字段 如果Ctrl按住键,则可以测试修饰符字段的 ActionEvent.CTRL_MASK。public void actionPerformed(ActionEvent e){   if ((ActionEvent.CTRL_MASK & e.getModifiers()) != 0){      // Do your action here   }}
随时随地看视频慕课网APP

相关分类

Java
我要回答