2013-12-12 3 views
0

Я знаю, что приведенный ниже код запретит пользователю вводить цифры, но как я могу манипулировать им, чтобы запретить специальные символы, например. ,./;'#[]-=<>?:@~{}_+.остановить пользователя, вводя специальные символы

txtUserName.addKeyListener(new KeyAdapter() { 
    public void keyTyped(KeyEvent e) { 
     char c = e.getKeyChar(); 
     if (Character.isDigit(e.getKeyChar())) 
      e.consume(); 
    } 
}); 
+0

Ему запрещено вводить цифры, допускаются только цифры? –

ответ

0

Проверьте, есть ли ",./;'#[]-=<>?:@~{}_+".indexOf(c) != -1.

См. String#indexOf(int).

+0

, который работает для них всех, кроме '' ', потому что он думает, что я закрываю цитаты, так что это за решение? –

+0

Escape the double quote: '",. /; \ "' # [] ..." '. –

+0

, который отлично работал, какой способ лучше? –

1

Вот код:

txtUserName.addKeyListener(new KeyAdapter() { 
    public void keyTyped(KeyEvent e) { 
     char c = e.getKeyChar(); 
     if (!Character.isLetterOrDigit(c)) 
      e.consume(); 
    } 
}); 

Просто используйте другую функцию.

+1

это действительно сработал отлично. благодаря –

Смежные вопросы