【发布时间】:2015-02-21 00:10:27
【问题描述】:
我将事件添加到我的 jTextField
jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jTextField1KeyTyped(evt);
}
});
这是我的代码的第二部分(负责处理键盘按钮):
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
switch (evt.getKeyCode()) {
case KeyEvent.VK_1:
print(one);
System.out.println("1");
break;
case KeyEvent.VK_2:
print(two);
System.out.println("2");
break;
case KeyEvent.VK_3:
print(three);
System.out.println("3");
break;
case KeyEvent.VK_4:
print(four);
System.out.println("4");
break;
case KeyEvent.VK_5:
print(five);
System.out.println("5");
break;
case KeyEvent.VK_6:
print(six);
System.out.println("6");
break;
case KeyEvent.VK_7:
print(seven);
System.out.println("7");
break;
case KeyEvent.VK_8:
print(eight);
System.out.println("8");
break;
case KeyEvent.VK_9:
print(nine);
System.out.println("9");
break;
case KeyEvent.VK_0:
print(zero);
System.out.println("0");
break;
}
}
但它不起作用。当我按下任何按钮时 - 什么都没有发生。
【问题讨论】:
-
尝试使用默认语句查看switch语句是否正在运行。
-
请提供更多有关此 textField 内容以及您正在使用它的内容的上下文。特别是,它有焦点吗?
-
您是否尝试调试您的代码并查看 evt.getKeyCode() 的实际值是多少?
-
我强烈建议您彻底改变策略。您不应该在 JTextField 内使用 KeyListener,因为这会扰乱 JTextField 的功能。使用 DocumentListener 或 DocumentFilter 或其他更好的选项之一。由于您似乎没有限制输入,因此请使用通过
addDcoumentListener(...)附加到 JTextField 文档的 DocumentListener。 -
查看keycode的值是什么并打印出来。确保它正在运行。
标签: java swing keyboard jtextfield keylistener