gpt4 book ai didi

java - 需要帮助让这个简单的华氏度到摄氏度应用程序在 Java 中工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:44:30 24 4
gpt4 key购买 nike

我需要此应用程序将用户在 JTextField 中输入的数字转换为 celsius 并将其显示在 JLabel 中。解析输入 double 的数据似乎有问题?这是许多错误中的一个。 谁能帮我弄清楚出了什么问题? (我在测试时只在文本字段中输入了 double 值,但它仍然不会将其更改为 double。)

public class TempConvertGUI extends JFrame{
private JLabel result;
private final JTextField input;

public TempConvertGUI()
{
super("Fahrenheit to Celsius Application");

setLayout(new FlowLayout());

//TempConvert convert=new TempConvert();

input=new JTextField(10);
input.setToolTipText("Enter degrees in fahrenheit here.");
input.addActionListener(new ActionListener()
{
private double temp;
private String string;

@Override
public void actionPerformed(ActionEvent event) {
if(event.getSource()==input)
{
remove(result);
if(event.getActionCommand()==null)
result.setText(null);
else
{
temp=Double.parseDouble(event.getActionCommand());
string=String.format("%d degrees Celsius", convertToCelsius(temp));
result.setText(string);;
}
add(result);
}
}

});
add(input);

result=new JLabel();
add(result);

}

private double convertToCelsius(double fahrenheit)
{
return (5/9)*(fahrenheit-32);
}
}

最佳答案

  1. 从未设置 JTextField 的 ActionCommand,因此它将是一个空字符串。如果您想解析 JTextField 中的数据,则获取其值并解析该值(例如 temp=Double.parseDouble(input.getText());)
  2. 参见 formatting strings 的 API - 使用 %f 解析浮点值
  3. 无需在 ActionPerformed 中添加和删除 result JLabel,它已经添加到 UI - 只需设置它的文本
  4. (5/9) 是整数数学,如果您需要 float 学,则将其中一个数字指定为正确的数据类型:(5/9d)

关于java - 需要帮助让这个简单的华氏度到摄氏度应用程序在 Java 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com