为什么我的“ if-else”语句在NetBeans GUI中不起作用?

时间:2019-07-14 00:22:51

标签: java user-interface netbeans

我的总结任务是创建一个计算用户BMI的应用程序。我应该使用GUI和if-else语句在2个度量系统(公制和英制)之间切换。

这有点像我的GUI外观:

名称:textfield1

以公制或(I)衡量的计量体系:textfield2

高度(M)或英寸(I):textfield3

输出:

我已经尝试了几乎可以在youtube上找到的所有方法并导致堆栈溢出,但是这些方法似乎都无法解决我的问题。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String strName;
        strName=this.jTextField1.getText();

        String strSystem = this.jTextField2.getText();

        if(strSystem.equals("M"))
        {
            double height = Double.parseDouble(lblHeight.getText());
            double weight = height*height*25;
            this.lblOutput.setText(strName + "'s Ideal Weight is:" + 
weight + "Kg");
        }
        else if(strSystem.equals("I"))
        {
            double height = Double.parseDouble(lblHeight.getText());
            double weight = (height*height*25)/703;
            this.lblOutput.setText(strName+ "'s Ideal Weight is:" + 
weight + "lbs");
        }

在textfield2中,用户应该写一个“ M”或“ I”以选择一种测量系统。该应用程序应该接受小写和大写字母(但我不知道该如何编码)。另外,第一个“ if”用黄色下划线显示,我看不出这是怎么回事。

编辑:我添加了以下建议,以解决大写情况。黄色的下划线不再显示,但是当我运行它时,输出中没有任何显示...我不知道我的代码有什么问题。请帮助我。

根据给定的公式,输出应该显示用户的姓名以及他们的理想体重。

ie;伊娃的理想体重是56.5公斤。

2 个答案:

答案 0 :(得分:0)

要同时接受小写和大写字母,请使用toUpperCase方法将文本从文本字段转换为大写字母,这样无论输入的字母是小写还是大写,您的if / else if语句都可以使用。改变这个

String strSystem = this.jTextField2.getText();

String strSystem = this.jTextField2.getText().toUpperCase();

@Bor Laze指出的另一种解决方案是使用equalsIgnoreCase方法代替上述方法。因此,将if和else if语句更改为以下内容,

if(strSystem.equalsIgnoreCase("M"))
....
else if(strSystem.equalsIgnoreCase("I"))
....

答案 1 :(得分:0)

您将使用toLowerCase或toUpperCase将输入归一化为其中之一并执行检查。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String strName;
    strName=this.jTextField1.getText();

    String strSystem = this.jTextField2.getText().toUpperCase();

    if(strSystem.equals("M"))
    {
        double height = Double.parseDouble(lblHeight.getText());
        double weight = height*height*25;
        this.lblOutput.setText(strName + "'s Ideal Weight is:" + weight + "Kg");
    }
    else if(strSystem.equals("I"))
    {
        double height = Double.parseDouble(lblHeight.getText());
        double weight = (height*height*25)/703;
        this.lblOutput.setText(strName+ "'s Ideal Weight is:" + weight + "lbs");
    }