用java编写,有一个按钮和两个文本域,当在第一个文本域中输入华氏度后,点击按钮,可以在第二个文本域显示对应的摄氏度
时间: 2024-03-15 07:47:55 浏览: 126
好的,以下是Java代码实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TemperatureConverter extends JFrame implements ActionListener {
private JTextField fahrenheitField;
private JTextField celsiusField;
private JButton toCelsiusButton;
public TemperatureConverter() {
super("Temperature Converter");
// 创建组件
JLabel fahrenheitLabel = new JLabel("华氏度:");
fahrenheitField = new JTextField(10);
JLabel celsiusLabel = new JLabel("摄氏度:");
celsiusField = new JTextField(10);
celsiusField.setEditable(false); // 不可编辑
toCelsiusButton = new JButton("转摄氏");
// 添加组件
JPanel contentPane = new JPanel(new GridLayout(3, 2, 5, 5));
contentPane.add(fahrenheitLabel);
contentPane.add(fahrenheitField);
contentPane.add(celsiusLabel);
contentPane.add(celsiusField);
contentPane.add(new JLabel());
contentPane.add(toCelsiusButton);
setContentPane(contentPane);
// 注册监听器
toCelsiusButton.addActionListener(this);
// 设置窗口属性
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
pack();
setVisible(true);
}
// 实现 ActionListener 接口
public void actionPerformed(ActionEvent e) {
if (e.getSource() == toCelsiusButton) {
// 华氏度转摄氏度
try {
double fahrenheit = Double.parseDouble(fahrenheitField.getText());
double celsius = (fahrenheit - 32) * 5 / 9;
celsiusField.setText(String.format("%.1f", celsius));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "请输入合法的数字!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
new TemperatureConverter();
}
}
```
这个程序使用了 Swing 组件库来创建 GUI 界面,包括文本域、标签和按钮等。当用户在华氏度文本域中输入数值后,点击“转摄氏”按钮,程序会将其转换为摄氏度后显示在摄氏度文本域中。如果用户输入的不是数字,则会弹出错误提示框。
阅读全文