带有GUI框的BMI计算器

时间:2014-01-18 10:50:58

标签: java user-interface

所以我有一个任务,我必须创建一个带输入和输出框的BMI计算器。 我遇到的问题是它给了我NaN作为答案。我搜索了这个网站和其他人,并发现问题是这样的:

 private static double input() {
// TODO Auto-generated method stub
return 0;
}

如果我更改了值,它会给我一个数字但不是我想要的数字。其他一切都有效,只是输出的一点点让我烦恼。

import static javax.swing.JOptionPane.*;

public class BMI_GUI {
private static String input;

public static void main(String[] args){

    double vikt;
    double langd;
    double bmi;

    setInput(showInputDialog("Din vikt i kg: "));
    vikt = input();

    setInput(showInputDialog("Din längd i m (med ett komma): "));
    langd = input();

    bmi = (vikt / (langd*langd));
    JOptionPane.showMessageDialog(null, "Din BMI är " + bmi);

    System.out.println("BMI Värden\n");
    System.out.println("Undervikt: Under 18.5");
    System.out.println("Normal: 18.5 - 24.9");
    System.out.println("Övervikt: 25 - 29.9");
    System.out.println("Fetma: 30 eller över");

    }

    private static double input() {
    // TODO Auto-generated method stub
    return 0;
    }

    public static String getInput() {
    return input;
    }

    public static void setInput(String input) {
    BMI_GUI.input = input;
    }

}

2 个答案:

答案 0 :(得分:0)

这里有一些问题。您没有在计算中引用要引用的变量(lengthwidth),并且您正在调用一个空的input()方法,它对您没有任何帮助,因此您可以完全摆脱它。 getInput()方法也是如此。由于您已经在输入input的静态BMI_GUI字符串中读取,因此只需将其解析为double。这是有效的,但理想情况下你也应该添加错误检查 - 如果输入String而不是可以解析为double的数字怎么办?您应该处理NumberFormatException - 可能会重新询问用户输入的内容。

public static void main(String[] args) {

    double bmi = 0.0;

    setInput(showInputDialog("Your weight in kg: "));
    double weight = Double.parseDouble(input);

    setInput(showInputDialog("Your length in m (with a comma): "));
    double length = Double.parseDouble(input);

    bmi = (weight / (length * length));

答案 1 :(得分:0)

你可能想要

private static double input() {
    // TODO Auto-generated method stub
    return Double.parseDouble(getInput());
}
相关问题