Java 对话框显示,只允许字符,但单击对话框上的“确定”后,文本字段中也会输入数字

Java 对话框显示,只允许字符,但单击对话框上的“确定”后,文本字段中也会输入数字,java,swing,Java,Swing,Numeric还输入名称文本字段,此代码工作不正常。请举例帮助我 Name_text.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { if(e.getKeyChar()>='0'&& e.getKeyChar()<='9'|| e.getKeyChar()>=33&& e.g

Numeric还输入名称文本字段,此代码工作不正常。请举例帮助我

   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");
        }
        }
           });
Name\u text.addKeyListener(新的KeyAdapter(){
@凌驾
public void keyTyped(KeyEvent e){

如果(e.getKeyChar()>='0'&&e.getKeyChar()=33&&e.getKeyChar()=58&&e.getKeyChar()=91&&e.getKeyChar()=123&&e.getKeyChar()有更好的方法来完成你想要的


签出

您发布的代码只显示一个对话框,抱怨不允许使用数字(通过一个难看的检查,regex
[0-9]
有什么问题),但它不会删除输入

此外,如其他答案所述,有内置的验证机制或比使用
键侦听器更好的方法:

  • JFormattedTextField
    是用于验证用户输入的文本字段。它需要一些调整来提高可用性(参见示例)
  • 使用
    InputVerifier
    。这里没有链接,因为我不喜欢这种机制。只是为了完整起见才提到它
  • 使用一个,它允许抑制某些输入,并且在使用拖放或复制粘贴时也会起作用,而您的
    KeyListener则不适用

示例可以在链接中找到。

这里有太多错误。这还不够,,,,,请提供示例帮助。我不打算为您编写代码。阅读教程,试用示例,不难理解。请修复卡住的“,”键并键入所有单词的字母,如“请”。