数字也会输入名称文本字段,此代码无法正常工作。请以身作则帮助我。
Name_text.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if(e.getKeyChar()>='0'&& e.getKeyChar()<='9'|| e.getKeyChar()>=33&& e.getKeyChar()<=47|| e.getKeyChar()>=58&& e.getKeyChar()<=64 || e.getKeyChar()>=91&& e.getKeyChar()<=96 || e.getKeyChar()>=123&& e.getKeyChar()<=127 ){
JOptionPane.showMessageDialog(null, "enter characters only");
}
}
});
答案 0 :(得分:2)
有更好的方法可以达到你想要的效果。
答案 1 :(得分:2)
您发布的代码只显示一个对话框,抱怨不允许使用数字(带有难看的检查,正则表达式[0-9]
出了什么问题),但它不会删除输入。
此外,正如其他答案中所述,有内置的验证机制或更好的方法,然后使用KeyListener
:
JFormattedTextField
是用于验证用户输入的文本字段。它需要一些调整来提高可用性(例如参见this blogpost)InputVerifier
。这里没有链接,因为我不喜欢这个机制。只是提到它的完整性DocumentListener
instead of a KeyListener
可以禁止某些输入,并且在使用拖放或复制粘贴时也可以使用KeyListener
可以在链接中找到示例。