当前位置: 首页 > 知识库问答 >
问题:

为什么我没有从NetBeans GUI中的if-语句获得输出?

濮彬
2023-03-14

我正在做一个任务,我必须创建一个“理想体重”计算器(有点像BMI计算器)。用户应该输入他们的身高、姓名和他们希望接收答案的测量系统。

IE;测量系统=(M)etric或(I)mperial,其中用户输入一个“M”或一个“I”。这意味着他们输入的高度必须对应于他们选择的单位。

IE;身高=1.5米或59英寸(除了他们不写单位,只写数字)。

我试图修复可能存在的任何语法错误,目前不再有任何错误,但当我单击calculate按钮时,我的GUI仍然不会输出任何东西。我不确定它有什么问题。请帮帮我.这个总结性作业今晚就要交了,我无法顺利完成

String strName, strSystem;
strName=this.jTextField1.getText();
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 + "lb");
}
else
{
this.lblOutput.setText(strSystem);
}

GUI应该使用以下公式来计算他们在“测量系统”中选择的单位中的“理想重量”。

公制:体重(公斤)=身高(米)×身高(米)×25

帝国:体重(磅)=身高(英寸)×身高(英寸)×25÷703*

GUI应该有点像这样:

共有1个答案

高正初
2023-03-14

if-else if块中,您将lbloutput的文本设置为消息,但在最后一行中,您将其设置为“”+strsystem,这可能会覆盖您以前设置的内容。尝试将其放在else块中:

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 + "lb");
}
else
{
    this.lblOutput.setText("" + strSystem);
}
 类似资料:
  • 我制作了这个简单的GUI程序,它可以计算特定字符序列的元音和辅音。计数器还可以,但是我对if-else语句有一个问题,当那个字符既不是元音也不是辅音时,我必须显示一条消息...代码如下: 它看起来是这样的: 我输入了一个没有任何特殊字符或数字的字符“序列”。但它仍然显示消息,其中它有元音和辅音以外的其他字符。if-else语句有问题吗?感谢您的帮助:)

  • 如何让程序在if语句后使用扫描器请求输入?

  • 首先,我发现了另外两条有类似问题的线索。问题在于,他们没有为字符串使用正确的等号,也没有为他们的特定问题正确设置if语句的格式。 在我的任务中,我需要创建一个名为“猪”的游戏,玩家与计算机对决,在掷骰子时先获得100分。如果玩家在一个回合中掷1,他们不会得到额外的分数。如果玩家掷两个1,那么他们将失去所有分数。我还没有对电脑的回合进行编码,只是专注于玩家。请告诉我我做错了什么。提前非常感谢。 我的

  • 我正在尝试更新名为的数据库中名为的表。该表的主键是。 当我运行以下语句时: 我收到一个错误,上面写着“您正在使用安全更新模式,并且您试图更新一个没有使用键列的WHERE的表。” 我在谷歌上搜索了那个错误消息,大多数回复都是“你必须使用子句或关闭安全模式”。但正如您所看到的,我使用的是子句。如果我有子句,为什么会出现错误? MySQL服务器版本5.6。20

  • 问题内容: 我知道静态方法在类级别。因此,我知道我不需要创建实例来调用静态方法。但我也知道我可以将静态方法(如LIKE)称为实例方法。这是我感到困惑的地方,因为我期望从null对象调用静态方法(就像在调用实例方法中一样)。我真的很感谢一些解释,为什么我错了一个期望。 这是示例代码: 问题答案: 通过实例调用静态方法不需要实例存在。只要编译器能够确定变量的类型,它就可以在评估表达式并丢弃结果后静态进

  • 问题内容: 我是Java的新手,正在尝试学习速记语句的概念。 我想出了下面的代码。但是,该代码将无法编译,并在(即?:)语句旁边显示错误。 有人可以告诉我为什么它不起作用吗? 对不起,如果我的问题对某些人听起来很愚蠢。我是Java新手。 在此先感谢您的帮助! 问题答案: 三元表达 是一个 表达式 ,而不是一个语句,因此不能在需要语句的地方使用。 您可以这样写: 因为这是一个声明。