質問:JTextFieldがフォーカスを失ったときにフォーカスリスナーでユーザー入力用のJTextFieldを持っていますが、JTextFieldのデータが数値であることをどのように確認できますか?JTextFieldが数字であることを確認してください
boolean isInteger = Pattern.matches("^\d*$", myString);
質問:JTextFieldがフォーカスを失ったときにフォーカスリスナーでユーザー入力用のJTextFieldを持っていますが、JTextFieldのデータが数値であることをどのように確認できますか?JTextFieldが数字であることを確認してください
boolean isInteger = Pattern.matches("^\d*$", myString);
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を入力してテキストをフィルタすることもできます。
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.
}
}
あなたのものではなく、私の編集するためのものです。既にロールバックされています。ごめんなさい! = | – maerics
@Maerics問題ありません。 –
ここでセミコロンをエスケープしました: 'System.out.println("整数 ");' –