gpt4 book ai didi

java - jTextField 上的 KeyListener 不起作用

转载 作者:行者123 更新时间:2023-12-02 09:44:21 25 4
gpt4 key购买 nike

我将事件添加到我的 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;
}
}

但是它不起作用。当我按下任何按钮时 - 什么也没有发生。

最佳答案

我强烈敦促您彻底改变策略。您不应该在 JTextField 内部使用 KeyListener,因为这会扰乱 JTextField 的功能。使用 DocumentListener 或 DocumentFilter 或其他更好的选项之一。由于您似乎没有限制输入,因此请使用通过 addDcoumentListener(...) 附加到 JTextField 文档的 DocumentListener。

即,

jTextField1.getDocument().addDocumentListener(new DocumentListener() {

public void keyTyped(java.awt.event.KeyEvent evt) {

void insertUpdate(DocumentEvent e) {
// ... code to check document change here
}

void removeUpdate(DocumentEvent e){
// ... code to check document change here
}

void changedUpdate(DocumentEvent e){
// ... code to check document change here
}

}

});

编辑:如果您想捕获计算器的数字按键,则也不要使用此功能。而是使用键绑定(bind)。

关于java - jTextField 上的 KeyListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27610396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com