Neu in Java, so dass jede Hilfe sehr geschätzt werden würde. Haben Sie ein kleines Problem mit der Datenüberprüfung in einem JTextField. Ein Benutzer wird gebeten, ihr Alter einzugeben, ob sie rauchen, und ob sie übergewichtig sind. Validierung für Rauchen und Gewicht funktioniert gut, so gilt die Altersgrenze, die ich eingestellt habe.JTextField Datenvalidierung
Wenn ich jedoch einen Buchstaben in der AgeField JTextField eingeben, scheint es zu stecken und die anderen Validierungsfehler nicht gedruckt. (ZB Es wird korrekt gedruckt "Alter muss eine ganze Zahl sein", aber wenn ich auch "h" in smokesField eingegeben, "Smoke Eingabe sollte Y, y, N oder n" würde nicht gedruckt werden.)
Sorry, Das ist eine lange und aufgeblasene Erklärung!
Auf jeden Fall hier ist der Code Ich habe Schwierigkeiten mit, danke:
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();
}
}
die 2. 'Integer.parseInt (ageBox)' wirft Ausnahme – Jerry06