2011-08-01 2 views
4

빠른 질문 : JTextField가 포커스를 잃을 때 포커스 수신기에서 사용자 입력을위한 JTextField가 있습니다. JTextField의 데이터가 숫자인지 어떻게 확인할 수 있습니까? 감사JTextField가 숫자인지 확인하십시오.

답변

7

Integer.parseInt(yourString)을 수행하고 그것이 NumberFormatException를 throw하는 경우 유효한 integer

try { 
    Integer.parseInt(myString); 
    System.out.println("An integer"): 
} 
catch (NumberFormatException e) { 
    //Not an integer 
} 

또 다른 대안은 정규식 문자열 아니라는 것을 알고 있습니다 :

boolean isInteger = Pattern.matches("^\d*$", myString); 
+0

죄송합니다. 편집하지 않으려 고합니다. 죄송합니다. 이미 되돌려 왔습니다. 죄송합니다. = | – maerics

+0

@Maerics 아무런 문제가 없습니다. –

+0

'System.out.println ("정수"); ' –

1
public void focusLost(FocusEvent fe) { 
    String text = this.getText(); 
    try { 
    double d = Double.parseDouble(text); 
    // or Integer.parseInt(text), etc. 
    // OK, valid number. 
    } catch (NumberFormatException nfe) { 
    // Not a number. 
    } 
} 
2

How to Use Formatted Text Fields을 참조하십시오.

형식화 된 텍스트 필드를 사용하지 않으려면 FocusListener가 아닌 InputVerifier를 사용해야합니다.

DocumentFilter을 입력하면 텍스트를 필터링 할 수도 있습니다.

+0

)이되어야한다고 생각합니다. +1 – mKorbel