只是感兴趣的问题,KeyListener
是否有一种方法可以完成与KeyBindings
相同的工作,我的意思是重写keyListener 的 方法( s) 并监听多个键 (CTRL+somekey)。
我知道,这是个愚蠢的想法,但正如我所说,这只是一个兴趣问题。
最佳答案
你可以通过使用一个标志来做到这一点:
KeyListener kl = new KeyListener() {
boolean controlPressed = false;
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_CONTROL) {
controlPressed = true;
return;
}
if(controlPressed) {
// CTRL is pressed, you can check here for other keys:
if(e.getKeyCode() == KeyEvent.VK_A) {
//CTRL + A was pressed
}
}
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_CONTROL) {
controlPressed = false;
}
}
};
正如 camickr 在评论中指出的,另一种方法是使用 KeyEvent
中的 isControlDown
方法:
if(e.isControlDown()) {
//CTRL is pressed
}
关于java - 我们可以使用 KeyListener 实现 KeyBindings 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18622981/