2.编写一个应用程序,实现一个标题为"计算"的窗口,窗口的布局为 FlowLayout 布局。在窗口中设计4个按钮,分别命名为"加""差""乘""除",另外添加3个文本框,单击相应的按钮,将两个文本框中的数字做运算,在第3个文本框中显示结果。要求处理 NumberFormatException 异常。
时间: 2023-07-21 09:15:21 浏览: 68
以下是一个简单的 Java 程序,实现了上述要求:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField num1, num2, result;
private JButton btnAdd, btnSub, btnMul, btnDiv;
public Calculator() {
super("计算器");
setLayout(new FlowLayout());
num1 = new JTextField(10);
add(num1);
num2 = new JTextField(10);
add(num2);
result = new JTextField(10);
result.setEditable(false);
add(result);
btnAdd = new JButton("加");
btnAdd.addActionListener(this);
add(btnAdd);
btnSub = new JButton("差");
btnSub.addActionListener(this);
add(btnSub);
btnMul = new JButton("乘");
btnMul.addActionListener(this);
add(btnMul);
btnDiv = new JButton("除");
btnDiv.addActionListener(this);
add(btnDiv);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
double x = Double.parseDouble(num1.getText());
double y = Double.parseDouble(num2.getText());
double z = 0.0;
if (e.getSource() == btnAdd) {
z = x + y;
} else if (e.getSource() == btnSub) {
z = x - y;
} else if (e.getSource() == btnMul) {
z = x * y;
} else if (e.getSource() == btnDiv) {
z = x / y;
}
result.setText(String.valueOf(z));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "输入格式错误", "错误", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
这个程序使用了 Java 的 GUI 工具包 Swing 来创建窗口和按钮,并使用 FlowLayout 布局来排列组件。在按钮的 ActionListener 中,我们先尝试将输入的文本解析为 double 类型的数字,如果出现了 NumberFormatException 异常,则弹出一个错误提示框;如果解析成功,则根据按钮的不同,进行相应的运算,并将结果显示在第 3 个文本框中。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)