2015-06-11 140 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