一般说的组合键,是指在按下某个特定的键的时候,有另一些键处于某个特定的状态。例如:按回车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文本组件中检测组合键就是这样简单。