0

私は持っていJTextFiledます。そして、私はそれにいくつかの整数値を入力します。

getMyAge(int age)パラメータとしてaを必要とする別のメソッドがintあります。

NumberFormatExceptionテキストフィールドに入力した整数を渡そうとすると、が発生します。

                    getMyAge(Integer.parseInt(txtFiled.getText()));

どうすればこれを修正できますか?(すべての場合、テキストフィールドに数値を入力します)。try-catchブロックを試しましたが、それでも機能しません。

4

4 に答える 4

1

余分な空きスペースがあると問題が発生しやすいため、内容を印刷してみてtxtFiled.getText()ください。txtFiled.getText().trim()

于 2012-12-12T21:25:32.673 に答える
0

Integer.parseInt(String) doc は、

文字列に解析可能な整数が含まれていない場合は、 NumberFormatException がスローされます。

したがって、間違いなく、数値の表現ではない文字列を渡しています。文字列の末尾にスペースが追加されている可能性があります。23or23は先頭と末尾に空白があるため解析できないことに注意してください。で空白をいつでもトリムできますString.trim()。そうだとすれば。これを試して:

                getMyAge(Integer.parseInt(txtFiled.getText().trim()));
于 2012-12-12T21:26:20.950 に答える
0

parseInt, the exception _NumberFormatException_ is fired, if the string does not contain a parsable integer.つまり、JTextField では、入力されたものを整数に解析できません。

解決

  1. のブロックで例外をキャッチし、Try/Catch/Finallyそこからメッセージを取得してみてください。
  2. JTextFieldに入力されているものが整数であることを確認してください...単純です:)
于 2012-12-12T21:29:27.013 に答える
0

setMyAge メソッドに設定する前に、テキストフィールドに数値が含まれているかどうかを確認する必要があります。

次のようにすることを提案します。

try {
  setMyAge(Integer.parseInt(txtFiled.getText().trim()));
} catch (NumberFormatException ne) {
  setMyAge(0); // you may remove this line if you doesn't want to set anything.
}
于 2012-12-12T21:29:35.500 に答える