用java实现编写一个能够转换华氏温度和摄氏温度的程序。在“摄氏温度”文本域输入一个值并点击华氏按钮(两个按钮—摄氏按钮、华氏按钮),在华氏文本域显示相应的华氏温度。反之,在“华氏文温度”文本域输入一个值,点击摄氏
时间: 2024-03-01 15:53:18 浏览: 159
按钮,在摄氏文本域显示相应的摄氏温度。
可以使用 Java Swing 来实现一个简单的 GUI 界面,以下是一个实现的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TemperatureConverter extends JFrame implements ActionListener {
private JLabel celsiusLabel, fahrenheitLabel;
private JTextField celsiusField, fahrenheitField;
private JButton celsiusButton, fahrenheitButton;
public TemperatureConverter() {
setTitle("温度转换器");
setSize(400, 120);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
celsiusLabel = new JLabel("摄氏温度:");
fahrenheitLabel = new JLabel("华氏温度:");
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, 3));
panel.add(celsiusLabel);
panel.add(celsiusField);
panel.add(celsiusButton);
panel.add(fahrenheitLabel);
panel.add(fahrenheitField);
panel.add(fahrenheitButton);
add(panel);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == celsiusButton) {
String celsiusText = celsiusField.getText();
if (celsiusText.isEmpty()) {
JOptionPane.showMessageDialog(null, "请输入温度值");
return;
}
try {
double celsius = Double.parseDouble(celsiusText);
double fahrenheit = celsius * 9 / 5 + 32;
fahrenheitField.setText(String.format("%.2f", fahrenheit));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "请输入合法的温度值");
}
} else if (e.getSource() == fahrenheitButton) {
String fahrenheitText = fahrenheitField.getText();
if (fahrenheitText.isEmpty()) {
JOptionPane.showMessageDialog(null, "请输入温度值");
return;
}
try {
double fahrenheit = Double.parseDouble(fahrenheitText);
double celsius = (fahrenheit - 32) * 5 / 9;
celsiusField.setText(String.format("%.2f", celsius));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "请输入合法的温度值");
}
}
}
public static void main(String[] args) {
new TemperatureConverter();
}
}
```
在上面的代码中,我们创建了一个 `TemperatureConverter` 类来实现温度转换器的界面和逻辑。在构造方法中,我们创建了标签、文本框和按钮等组件,并将它们添加到面板中。同时,我们也设置了按钮的点击事件监听器为 `this`,即当前类的实例。
在 `actionPerformed()` 方法中,我们根据点击的按钮来判断是进行摄氏转华氏还是华氏转摄氏的操作。然后,我们从文本框中获取输入的温度值,并进行相应的计算。最后,我们使用 `JOptionPane` 弹窗来显示错误信息或计算结果。注意,在计算结果时,我们使用了 `String.format()` 方法来格式化输出结果,保留两位小数。
最终,我们在 `main()` 方法中,创建了一个 `TemperatureConverter` 类的实例,来显示温度转换器的界面。
阅读全文