Hej.,
Dopiero uczę się Javy, więc z góy przepraszam za błedy.
Na zaliczenie w szkole mam do zrobienia kalkulator BMI. Zbudowałem program z użyciem jFrame w Net Beans. Mam problem jak przymusić użytkownika do użycia liczb dodatnich. Próbowałem użyć try
/catch
, ale udało mi się to tylko w przypadku użycia liter (pojawia się ramka "Użyj cyfr").
Tak wygląda główna część kodu:
private void calculateActionPerformed(java.awt.event.ActionEvent evt) {
try {
weight = Double.parseDouble(weightValue.getText());
height = Double.parseDouble(heightValue.getText());
if(lbs.isSelected()){
weight = weight / 2.205;
}
if(inch.isSelected()){
height = height / 39.37;
}
else if(cm.isSelected()){
height = height / 100;
}
bmi = weight /(height*height);
} //end try
catch(NumberFormatException nfe)
{
String message = String.format("%s\n%s", nfe.getMessage(), "Use Numbers only");
JOptionPane.showMessageDialog(Main.this, message, "Input Error", JOptionPane.ERROR_MESSAGE);
}