我使用Netbeans表单模板构建gui并在表单上添加Keypress事件(右键单击>事件> KeyPressed),如下面的代码所示。 但似乎System.out.print或其他操作不执行任何操作。 那么我该如何解决这个问题?
private void formKeyPressed(java.awt.event.KeyEvent evt) {
char PressedChar = evt.getKeyChar();
System.out.print(PressedChar);
}
答案 0 :(得分:1)
那我该如何解决这个问题?
Swing旨在与Key bindings一起使用,这是一种更灵活,更可靠的方法,具有以下优势:
WHEN_FOCUSED
,WHEN_IN_FOCUSED_WINDOW
,WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
话说回来之后,我们很少想听任何键按下来执行某些操作,但是为了执行某些操作,需要执行某些特定的按键操作或按键组合。但是,如果您的用例是肯定的,那么您需要KeyListener
,但请查看@camickr this answer以正确执行此操作。
另请参阅此主题:Key bindings vs. key listeners in Java和How to Use Key Bindings教程