import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calcuator extends Frame implements ActionListener {
private JTextField num1, num2, result;
private JButton jiajb, jianjb, chengjb, chujb, againjb;// 定义加、减、乘、除和清空按钮
private JLabel lb1;
int x, y;
private JPanel pan;
// 构造方法初始化变量
public Calcuator() {
pan = new JPanel();// 创建面板pan
num1 = new JTextField(10);
num2 = new JTextField(10);
result = new JTextField(10);
jiajb = new JButton("+");
jianjb = new JButton("-");
chengjb = new JButton("×");// 创建乘号按钮
chujb = new JButton("÷");// 创建除号按钮
againjb = new JButton("清空");// 创建清空按钮
lb1 = new JLabel(" = ");// 创建等号标签
// 依次各个按钮注册监听器
jiajb.addActionListener(this);
jianjb.addActionListener(this);
chengjb.addActionListener(this);
chujb.addActionListener(this);
againjb.addActionListener(this);
this.addWindowListener(new myWindowAdapter());// 注册窗体关闭监听器
// 将各个文本框、按钮、标签依次粘贴到面板上
pan.add(num1);
pan.add(jiajb);
pan.add(jianjb);
pan.add(chengjb);
pan.add(chujb);
pan.add(num2);
pan.add(lb1);
pan.add(result);
pan.add(againjb);
this.add(pan);// 将面板粘贴到窗体上
this.pack();// 设置窗体大小为默认
this.setVisible(true);// 设置窗体为可见
}
//重写actionPerformed方法,实现事件处理
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
//把输入的值赋值给x,y
try{
x = Integer.parseInt((num1.getText()));
y = Integer.parseInt((num2.getText()));
//用if语句控制计算
if (obj.equals(jiajb)) {
int result1 = x + y;
result.setText(Integer.toString(result1));//将运算结果赋值给result文本输入框
}
if (obj.equals(jianjb)) {
int result1 = x - y;
result.setText(Integer.toString(result1));//将运算结果赋值给result文本输入框
}
if (obj.equals(chengjb)) {
int result1 = x * y;
result.setText(Integer.toString(result1));//将运算结果赋值给result文本输入框
}
if (obj.equals(chujb)) {
//利用try-catch语句,处理可能出现的异常
int result1 = x / y;
result.setText(Integer.toString(result1));//将运算结果赋值给result文本输入框
}
} catch (ArithmeticException ex) {System.out.println("除数不能为0!");
String s = "除数不能为0";
JOptionPane.showMessageDialog(null, s, "Error",
JOptionPane.ERROR_MESSAGE);}//用showMessageDialog弹出错误对话框
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null, "输入的不是数字", "Error",
JOptionPane.ERROR_MESSAGE);
}
catch(Exception ex){
JOptionPane.showMessageDialog(null, e.toString(), "Error",
JOptionPane.ERROR_MESSAGE);
}
//设置清空功能
if (obj.equals(againjb)) {
num1.setText("");
num2.setText("");
result.setText("");
}
}
//创建窗体关闭类,继承WindowAdapter适配器
class myWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
//创建main方法作为程序主入口
public static void main(String arg[]) {
new Calcuator();
}
}
完全源代码