Javaを使いこなすので、どんな助けでも大歓迎です。 JTextFieldのデータ検証に小さな問題があります。 ユーザーに年齢、喫煙の有無、太りすぎの有無を入力するよう求められます。 喫煙と体重の検証がうまくいくので、年齢制限も設定されています。JTextFieldデータ検証
ageField JTextFieldに文字を入力すると、スタックしているように見え、他の検証エラーは表示されません。 (例えば、年齢は整数でなければなりませんが、smokesfieldに 'h'を入力した場合、「Smoke inputはY、Y、Nまたはnでなければなりません」と表示されます)
申し訳ありませんが、それは長くて肥満な説明です!とにかくここ
は、私は、ありがとうと困難を抱えているコードです:
public void actionPerformed(ActionEvent e)
{
String ageBox = ageField.getText();
int age = 0;
if (e.getSource() == reportButton)
{
if (ageBox.length() != 0)
{
try
{
age = Integer.parseInt(ageBox);
}
catch (NumberFormatException nfe)
{
log.append("\nError reports\n==========\n");
log.append("Age must be an Integer\n");
ageField.requestFocus();
}
}
if (Integer.parseInt(ageBox) < 0 || Integer.parseInt(ageBox) > 116)
{
log.append("\nError reports\n==========\n");
log.append("Age must be in the range of 0-116\n");
ageField.requestFocus();
}
if (!smokesField.getText().equalsIgnoreCase("Y") && !smokesField.getText().equalsIgnoreCase("N"))
{
log.append("\nError reports\n==========\n");
log.append("Smoke input should be Y, y, N or n\n");
smokesField.requestFocus();
}
if (!overweightField.getText().equalsIgnoreCase("Y") && !overweightField.getText().equalsIgnoreCase("N"))
{
log.append("\nError reports\n==========\n");
log.append("Over Weight input should be Y, y, N or n\n");
smokesField.requestFocus();
}
}
2番目の 'Integer.parseInt(ageBox)'は例外をスローします – Jerry06