用java编写一个能够转换华氏温度和摄氏温度的程序。在“摄氏温度”文本域输入一个值并点击华氏按钮(两个按钮—摄氏按钮、华氏按钮),在华氏文本域显示相应的华氏温度。反之,在“华氏文温度”文本域输入一个值,点击摄氏按钮,在摄氏文本域中显示相应的摄氏温度
时间: 2024-02-19 20:59:26 浏览: 130
好的,这是一个简单的 Java 程序,实现了华氏温度和摄氏温度之间的转换。
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TemperatureConverter extends JFrame implements ActionListener {
private JTextField celsiusField, fahrenheitField;
private JButton celsiusButton, fahrenheitButton;
public TemperatureConverter() {
// 设置窗口标题
setTitle("温度转换器");
// 创建文本框和按钮
celsiusField = new JTextField(10);
fahrenheitField = new JTextField(10);
celsiusButton = new JButton("华氏 → 摄氏");
fahrenheitButton = new JButton("摄氏 → 华氏");
// 添加事件监听器
celsiusButton.addActionListener(this);
fahrenheitButton.addActionListener(this);
// 创建面板并添加组件
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2));
panel.add(new JLabel("摄氏温度:"));
panel.add(celsiusField);
panel.add(celsiusButton);
panel.add(new JLabel("华氏温度:"));
panel.add(fahrenheitField);
panel.add(fahrenheitButton);
// 将面板添加到窗口中
add(panel);
// 设置窗口大小并显示
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == celsiusButton) {
// 华氏 → 摄氏
double fahrenheit = Double.parseDouble(fahrenheitField.getText());
double celsius = (fahrenheit - 32) * 5 / 9;
celsiusField.setText(String.format("%.2f", celsius));
} else if (e.getSource() == fahrenheitButton) {
// 摄氏 → 华氏
double celsius = Double.parseDouble(celsiusField.getText());
double fahrenheit = celsius * 9 / 5 + 32;
fahrenheitField.setText(String.format("%.2f", fahrenheit));
}
}
public static void main(String[] args) {
new TemperatureConverter();
}
}
```
这个程序使用了 Java 的图形界面工具包 Swing 来创建窗口和组件。其中,`JTextField` 是用来输入温度值的文本框,`JButton` 是用来触发转换操作的按钮,`JLabel` 是用来显示标签的组件,`JPanel` 是用来组织界面布局的容器。
在 `actionPerformed` 方法中,根据用户点击的按钮来判断需要进行哪种转换,然后将输入的温度值转换成另一种温度值,并更新对应的文本框。注意,这里使用了 `Double.parseDouble` 方法将字符串转换成双精度浮点数,使用 `String.format` 方法将浮点数格式化成两位小数的字符串。
在 `main` 方法中,创建了一个 `TemperatureConverter` 对象并显示出来。用户可以在输入框中输入温度值,并点击对应的按钮进行转换。
阅读全文