0
我想要一個的KeyListener添加到我的JPanel,但即使在此之後,它不會工作:的KeyListener上的JPanel將無法正常工作
put.setFocusable(true);
put.requestFocusInWindow();
KeyboardHandler keyhandler=new KeyboardHandler();
put.addKeyListener(keyhandler);
}
private class KeyboardHandler implements KeyListener{
public void keyPressed(KeyEvent e) {
System.out.println("OVDE ZZZ");
if(e.getKeyCode()==17) ctrl=true;
if(e.getKeyCode()==90) z=true;
if(ctrl && z){
if (UndoBrojac==0) JOptionPane.showMessageDialog(null, "You can't undo that");
else{
UndoBrojac--;
put.setUndo(UndoBrojac);
}
}
}
public void keyReleased(KeyEvent e){
if (e.getKeyCode()==17) ctrl = false;
if (e.getKeyCode()==90) z = false;
}
public void keyTyped(KeyEvent e) {}
}
我想補充CTRL + Z,但它不起作用。
您應該使用'KeyEvent.VK_CONTROL'和'KeyEvent.VK_Z'來避免魔術常量。 – Dahaka
這不是問題,它甚至不會得到keypressed –
對於Swing,通常使用基於AWT的更低級別的KeyListener上的鍵綁定。有關如何使用它們的詳細信息,請參閱[如何使用鍵綁定](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)。 –