一般說的組合鍵,是指在按下某個特定的鍵的時候,有另一些鍵處于某個特定的狀態。例如:按回車enter,且CTRL鍵處于按下的狀態,就認為是按了CTRL+回車這個組合鍵。
下面是具體的代碼,myTextArea是一個文本區域組件(JTextArea)。注意其中粗體部分:
myTextArea.addKeyListener(new KeyListener(){
@Override
public void keyReleased(KeyEvent arg0) {
if ( arg0.getKeyCode() == KeyEvent.VK_ENTER &&
((arg0.getModifiersEx() & KeyEvent.CTRL_DOWN_MASK) != 0) &&
((arg0.getModifiersEx() & KeyEvent.SHIFT_DOWN_MASK) == 0) ) {
// do something......
}
}
@Override
public void keyPressed(KeyEvent arg0) {
// do nothing
}
@Override
public void keyTyped(KeyEvent arg0) {
// do nothing
}
});
上面粗體部分第一句意味著回車鍵處于按下狀態;
第二句意味著同時Ctrl鍵處于按下狀態;
第三句意味著Shift鍵沒有處于按下狀態;
整個條件就是指在ctrl+enter鍵按下時,執行特定的處理。
Java文本組件中檢測組合鍵就是這樣簡單。