一般說(shuō)的組合鍵,是指在按下某個(gè)特定的鍵的時(shí)候,有另一些鍵處于某個(gè)特定的狀態(tài)。例如:按回車enter,且CTRL鍵處于按下的狀態(tài),就認(rèn)為是按了CTRL+回車這個(gè)組合鍵。
下面是具體的代碼,myTextArea是一個(gè)文本區(qū)域組件(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
}
});
@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
}
});
上面粗體部分第一句意味著回車鍵處于按下?tīng)顟B(tài);
第二句意味著同時(shí)Ctrl鍵處于按下?tīng)顟B(tài);
第三句意味著Shift鍵沒(méi)有處于按下?tīng)顟B(tài);
整個(gè)條件就是指在ctrl+enter鍵按下時(shí),執(zhí)行特定的處理。
Java文本組件中檢測(cè)組合鍵就是這樣簡(jiǎn)單。