加速器按Ctrl +鼠标左键单击

时间:2015-06-11 11:37:16

标签: java swing

我有一个动作,需要一个加速器。更确切地说,对于 Ctrl + left 鼠标按钮单击我需要执行操作。我尝试过:

putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.CTRL_DOWN_MASK, InputEvent.BUTTON1_DOWN_MASK));

但没有运气......

稍后修改...

我可以使用鼠标监听器来实现该功能,但我需要一个Action加速器,以便在添加到类似于此图像的弹出窗口时显示良好:

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在MouseListener上添加JPanel,然后检查事件中是否按下了CTRL键。像这样:

@Override
public void mouseClicked(MouseEvent e) {


    text.setText("Mouse clicked");

    if(SwingUtilities.isLeftMouseButton(e) &&e.isControlDown()) {
        text.setText("left  + CTRL clicked");
    }

}