如何验证Jtextfield只允许Java中的字母?

时间:2018-03-29 12:29:33

标签: java validation jtextfield

尝试使此字段仅允许字母,并且“(c!='[a-zA-Z] +')”表示无效字符常量

textField_CustomerFirstName = new JTextField();
            textField_CustomerFirstName.setBounds(152, 100, 273, 22);
            textField_CustomerFirstName.setColumns(10);
            contentPane.add(textField_CustomerFirstName);
            textField_CustomerFirstName.addKeyListener(new KeyAdapter() {
                public void keyTyped(KeyEvent e) {
                    // allows only numbers and back space
                     char c = e.getKeyChar();
                      if ( ((c !='[a-zA-Z]+') && (c != KeyEvent.VK_BACK_SPACE)) {
                         e.consume();  // ignore event
                      }
                }
            });

1 个答案:

答案 0 :(得分:2)

首先,event.getKeyChar()event.getKeyCode()之间存在差异。 其次,你可以在java.lang.Character中使用静态方法,我相信你可能会在以下之后:

int code = e.getKeyCode();
char c = e.getKeyChar();
if(!Character.isLetter(c) && code!=KeyEvent.VK_BACK_SPACE) {
    e.consume();  // ignore event
}

您可能还想调查Character.isAlphabetic是否适合您的目的。