首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java scenebuilder bmi计算器

java scenebuilder bmi计算器
EN

Stack Overflow用户
提问于 2019-02-18 21:27:53
回答 1查看 694关注 0票数 0

所以我一直在做一个javaFX & Scenebuilder项目来创建一个体重指数计算器,但是似乎有点卡住了。关于我应该做什么,有什么建议/建议吗?

其中一个需求是有两个交互式类以及控制器,fxml页面和应用程序启动器。第一个类用于将英寸转换为厘米,磅转换为千克,然后在第二个类中使用该值来计算bmi值和状态。

代码语言:javascript
运行
复制
public class BMIInput {

private double heightIN;
private double heightCM;
private double weightKG;
private double weightLBS;
public double height;
public double weight;

public BMIInput() {
}

public double getHeight() {
    if (heightIN == 0) {
        height = heightCM;
    } else if (heightCM == 0) {
        height = (heightIN * 2.54);
    }
    return height;
}

public double getWeight() {
    if (weightLBS == 0) {
        weight = weightKG;
    } else if (weightKG == 0) {
        weight = (weightLBS / 2.205);
    }
    return weight;
}

public double setHeightIN(double height) {
    return this.heightIN = height;
}

public double setHeightCM(double height) {
    return this.heightCM = height;
}

public double setWeightKG(double weight) {
    return this.weightKG = weight;
}

public double setWeightLBS(double weight) {
    return this.weightLBS = weight;
}

}

第二类:

代码语言:javascript
运行
复制
public class BMICalculator {

BMIInput height;
BMIInput weight;
double bmiValue;

public double getBmiValue() {
    return bmiValue;
}

public void setBmiValue(double bmiValue) {
    this.bmiValue = bmiValue;
}

public double calculateBMI() {
    double heightDouble = Double.parseDouble(height.toString());
    double weightDouble = Double.parseDouble(weight.toString());

    bmiValue = (weightDouble / (heightDouble / 100.0) * (heightDouble / 100));

    return bmiValue;
}    

public String calculateStatus() {
    String value = "";
    if (bmiValue <= 18.5) {
        value = "Underweight";
    } else if (18.6 <= bmiValue && bmiValue <= 24.9) {
        value = "Normal weight";
    } else if (25 <= bmiValue && bmiValue <= 29.9) {
        value = "Overweight";
    } else {
        value = "Obesity";
    }
    return value;
}

和控制器:

代码语言:javascript
运行
复制
import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TextField; public class AppController {

@FXML private TextField CMheightInput;
@FXML private TextField INheightInput;
@FXML private TextField KGweightInput;
@FXML private TextField LBSweightInput;
@FXML private Button buttonCalculate;
@FXML private TextField bmiValueOutput;
@FXML private TextField bmiStatusOutput;



BMICalculator calc = new BMICalculator();
BMIInput input = new BMIInput();

@FXML public void calculateBMI() {
    try {
        input.setHeightCM(Double.parseDouble(CMheightInput.getText()));
        input.setHeightIN(Double.parseDouble(INheightInput.getText()));
        input.setWeightKG(Double.parseDouble(KGweightInput.getText()));
        input.setWeightLBS(Double.parseDouble(LBSweightInput.getText()));

        bmiValueOutput.setText("" + calc.calculateBMI());

        bmiStatusOutput.setText("" + calc.calculateStatus());
    }
    catch (Exception e) {
        System.out.println("Something went wrong, try again.");
    }
}

如果有人有任何建议,我将不胜感激!Xx

EN

回答 1

Stack Overflow用户

发布于 2019-02-19 04:04:38

您可能没有引用variables...where的实例作为程序启动的主方法?你必须在一个Java文件中加载你的FXMLController和它的资源。试着看一段关于如何在SceneBuilder中使用简单的JavaFX程序的YouTube视频。其中一个我喜欢的是:How to use SceneBuilder

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54748403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档