2011-08-01 13 views
4

質問:JTextFieldがフォーカスを失ったときにフォーカスリスナーでユーザー入力用のJTextFieldを持っていますが、JTextFieldのデータが数値であることをどのように確認できますか?JTextFieldが数字であることを確認してください

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

答えて

7

Integer.parseInt(yourString)を実行してください。そして、それはNumberFormatExceptionをスローした場合、あなたが文字列を知っているだろうが別の方法としては、正規表現である有効integer

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

ではありませんHow to Use Formatted Text Fieldsを参照してください。

フォーマットされたテキストフィールドを使用しない場合は、FocusListenerではなくInputVerifierを使用する必要があります。

DocumentFilterを入力してテキストをフィルタすることもできます。

+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. 
    } 
} 
関連する問題