如何验证 Jtextfield 只允许 Java 中的字母?
How to validate a Jtextfield to only allow letters in Java?
试图使该字段只允许字母,但“(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
}
}
});
首先,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
是否适合您的目的。
试图使该字段只允许字母,但“(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
}
}
});
首先,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
是否适合您的目的。