编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计四个按钮,分别命名为“加”、“差”、“积、”、“除”,另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。
时间: 2024-03-18 10:42:02 浏览: 112
用文本框、编辑框、按钮等控件实现加法计算器 具体包括:通过编辑框输入数字,用按钮触发计算,并用文本框显示计算结果
好的,这是一个Java图形界面程序的问题,我可以帮你解答。
你可以按照以下步骤实现:
1. 在Java IDE中创建一个新的Java项目,创建一个名为“Calculator”的类。
2. 在Calculator类中创建一个名为“main”的方法,该方法作为程序的入口点。
3. 在main方法中,创建一个JFrame对象,并设置标题为“计算”,布局为FlowLayout,大小为400x100。
4. 创建三个JTextField对象,分别用于输入两个数字和输出结果,并将它们添加到JFrame中。
5. 创建四个JButton对象,分别用于加、减、乘、除四种运算,并将它们添加到JFrame中。
6. 为每个按钮添加一个ActionListener监听器,当用户单击按钮时,从两个JTextField中读取数字,进行相应的运算,并将结果显示在第三个JTextField中。需要注意的是,需要处理NumberFormatException异常,以避免输入非法的数字。
7. 运行程序,测试功能是否正确。
下面是参考代码,你可以参考下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator {
public static void main(String[] args) {
// 创建JFrame对象
JFrame frame = new JFrame("计算");
frame.setLayout(new FlowLayout());
frame.setSize(400, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建三个JTextField对象
JTextField num1 = new JTextField(5);
JTextField num2 = new JTextField(5);
JTextField result = new JTextField(10);
result.setEditable(false); // 设置结果文本框为只读
// 创建四个JButton对象
JButton addBtn = new JButton("加");
JButton subBtn = new JButton("减");
JButton mulBtn = new JButton("乘");
JButton divBtn = new JButton("除");
// 为四个按钮添加ActionListener监听器
addBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
result.setText(String.valueOf(n1 + n2));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "请输入合法数字", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
subBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
result.setText(String.valueOf(n1 - n2));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "请输入合法数字", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
mulBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
result.setText(String.valueOf(n1 * n2));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "请输入合法数字", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
divBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
if (n2 == 0) {
JOptionPane.showMessageDialog(frame, "除数不能为0", "错误", JOptionPane.ERROR_MESSAGE);
} else {
result.setText(String.valueOf(n1 / n2));
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "请输入合法数字", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
// 将组件添加到JFrame中
frame.add(num1);
frame.add(num2);
frame.add(addBtn);
frame.add(subBtn);
frame.add(mulBtn);
frame.add(divBtn);
frame.add(result);
// 显示JFrame
frame.setVisible(true);
}
}
```
希望能对你有所帮助!
阅读全文