正在学习Java
有不足之处 还望指教 -------镇妖塔
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
class ex2 {
JButton btn0;
JButton btn1;
JButton btn2;
JButton btn3;
JButton btn4;
JButton btn5;
JButton btn6;
JButton btn7;
JButton btn8;
JButton btn9;
JButton btnDian;
JButton btnJia;
JButton btnJian;
JButton btnCheng;
JButton btnChu;
JButton btnQing;
JButton btnShuchu;
JFrame frm;
JTextField tf;
StringBuffer sb; // 定义一个变量,存储文本框里面的数值
Integer number1; // 加数
Integer number2; // 被加数
Integer sum; // 和
boolean b; // 运算符是否被点击
int a; //用于分辨运算
// 构造方法
ex2() {
// 初始化原始数据
initData();
// 控件初始化
initUI();
}
//数据初始化
private void initData() {
sb = new StringBuffer("");
number1 = 0;
number2 = 0;
sum = 0;
b = false;
a = 0;
}
private void initUI() {
//窗口
frm = new JFrame("计算器");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize(385, 310); // 设置窗口的宽高
frm.setLocation(100, 100); // 设置窗口的起始点
frm.setLayout(null);
frm.setResizable(false); // 设置窗口一旦创建好,不能在改变大小
frm.setVisible(true);
//文本框
tf = new JTextField();
tf.setText("");
tf.setBounds(20, 20, 330, 33);
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setBackground(Color.WHITE);
frm.add(tf);
// 创建组件并添加到容器中
btn0 = new JButton("0");
btn0.setBounds(20, 220, 120, 33);
btn0.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn0.getText());
tf.setText(sb.toString());
}
});
btn1 = new JButton("1");
btn1.setBounds(20, 70, 50, 33);
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn1.getText());
tf.setText(sb.toString());
}
});
btn2 = new JButton("2");
btn2.setBounds(90, 70, 50, 33);
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn2.getText());
tf.setText(sb.toString());
}
});
btn3 = new JButton("3");
btn3.setBounds(160, 70, 50, 33);
btn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn3.getText());
tf.setText(sb.toString());
}
});
btn4 = new JButton("4");
btn4.setBounds(20, 120, 50, 33);
btn4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn4.getText());
tf.setText(sb.toString());
}
});
btn5 = new JButton("5");
btn5.setBounds(90, 120, 50, 33);
btn5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn5.getText());
tf.setText(sb.toString());
}
});
btn6 = new JButton("6");
btn6.setBounds(160, 120, 50, 33);
btn6.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn6.getText());
tf.setText(sb.toString());
}
});
btn7 = new JButton("7");
btn7.setBounds(20, 170, 50, 33);
btn7.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn7.getText());
tf.setText(sb.toString());
}
});
btn8 = new JButton("8");
btn8.setBounds(90, 170, 50, 33);
btn8.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn8.getText());
tf.setText(sb.toString());
}
});
btn9 = new JButton("9");
btn9.setBounds(160, 170, 50, 33);
btn9.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn9.getText());
tf.setText(sb.toString());
}
});
btnDian = new JButton(".");
btnDian.setBounds(160, 220, 50, 33);
btnDian.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btnDian.getText());
tf.setText(sb.toString());
}
});
btnJia = new JButton("+");
btnJia.setBounds(230, 170, 50, 83);
btnJia.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = true;
a = 1;
number1 = new Integer(tf.getText());
tf.setText(number1.toString());
}
});
btnJian = new JButton("-");
btnJian.setBounds(300, 120, 50, 33);
btnJian.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = true;
a = 2;
number1 = new Integer(tf.getText());
tf.setText(number1.toString());
}
});
btnCheng = new JButton("*");
btnCheng.setBounds(230, 70, 50, 33);
btnCheng.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = true;
a = 3;
number1 = new Integer(tf.getText());
tf.setText(number1.toString());
}
});
btnChu = new JButton("/");
btnChu.setBounds(230, 120, 50, 33);
btnChu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = true;
a = 4;
number1 = new Integer(tf.getText());
tf.setText(number1.toString());
}
});
btnQing = new JButton("C");
btnQing.setBounds(300, 70, 50, 33);
btnQing.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
initData();
tf.setText("");
}
});
btnShuchu = new JButton("=");
btnShuchu.setBounds(300, 170, 50, 83);
btnShuchu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
number2 = new Integer(tf.getText());
switch(a){
case 1: sum = number1 + number2;break;
case 2: sum = number1 - number2;break;
case 3: sum = number1 * number2;break;
case 4: sum = number1 / number2;break;
}
b = false;
a = 0;
tf.setText(sum.toString());
}
});
frm.add(btn1);
frm.add(btn2);
frm.add(btn3);
frm.add(btn4);
frm.add(btn5);
frm.add(btn6);
frm.add(btn7);
frm.add(btn8);
frm.add(btn9);
frm.add(btn9);
frm.add(btn0);
frm.add(btnQing);
frm.add(btnDian);
frm.add(btnJia);
frm.add(btnJian);
frm.add(btnShuchu);
frm.add(btnCheng);
frm.add(btnChu);
}
public static void main(String args []) {
new ex2();
}
}