2015-06-11 60 views
2

我有一个动作,需要一个加速器。更确切地说,对于Ctrl +左鼠标按钮单击我需要执行的动作。我试着用:加速键Ctrl +鼠标左键点击

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

,但没有运气...

后来编辑...

我可以实现用鼠标监听功能,但我需要一个加速器在行动责令很好地显示当加入到与此类似图像的弹出:

enter image description here

+0

你在调用'putValue'的什么组件? – user1803551

+0

我需要执行一个JPanel组件的动作。 – Tiberiu

+0

如果您希望在鼠标单击面板时发生该操作(不管“Ctrl”是什么),那么按键绑定就不是了。你需要一个'MouseListener'。 – user1803551

回答

0

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

@Override 
public void mouseClicked(MouseEvent e) { 


    text.setText("Mouse clicked"); 

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

} 
+0

我编辑了我的问题以更好地理解我实际需要的内容。该行动工作得很好,但我需要一个加速器。 – Tiberiu