2015-06-19 3 views
0

Я хочу проверить контакт без текстового поля, чтобы проверить, содержит ли он цифру. Я написал следующую функцию для KeyTyped, но она не работает, никто не может предоставить альтернативу. Спасибо заранее.Проверка контактного номера

Код: -

private void tnoKeyTyped(java.awt.event.KeyEvent evt) 
{ 
    char c=evt.getKeyChar(); 
    System.out.println("hi"); 
    if(!(Character.isDigit(c)||(c==KeyEvent.VK_BACK_SPACE)||(c==KeyEvent.VK_DELETE))) 
    { 
     evt.consume(); 
    } 
} 
+1

Что означает ' он не работает'? – Jens

+0

[Реализация фильтра документов] (http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#filter), [Примеры DocumentFilter] (http://www.jroller.com/dpmihai/ entry/documentfilter) и [пример] (http://stackoverflow.com/questions/30908040/referencing-from-an-inner-class/30908436?s=1|0.0000#30908436) – MadProgrammer

ответ

1

Я хочу, чтобы проверить Контактной не текстовое поле для проверки, если он содержит цифру

Вы можете сделать проверку после на поле с помощью InputVerifer см Validating Input для более подробной информации.

Я написал следующую функцию для KeyTyped, но она не работает, кто может обеспечить альтернативный

Вы можете сделать реальную проверку времени через использование DocumentListener см Implementing a Document Filter и DocumentFilter Examples для более подробной информации

1

регулярное выражение должно сделать трюк:

char c = evt.getKeyChar(); 

//create a pattern that checks for digits and backspace 
Pattern p = Pattern.compile("[0-9\\b]"); 

//check if your character as a string matches the pattern 
Matcher m = p.match("" + c); 
boolean b = m.matches(); 

//I don't know if there is a regex equivilent for delete 
if(!(b || c == KeyEvent.VK_DELETE)) { 
    evt.consume(); 
}