import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Exec {
public static void main(String args[]) {
MyFrame m = new MyFrame();
m.setVisible(true);
m.pack();
}
}
class MyFrame extends JFrame implements ActionListener {
JTextField jtf = new JTextField();
JPanel jp = new JPanel();
JButton[] jb = new JButton[10];
JButton jbEqual = new JButton("=");
JButton jbAdd = new JButton("+");
JButton jbMinus = new JButton("-");
JButton jbMultiply = new JButton("*");
JButton jbDivide = new JButton("/");
int number1 = 0;
int number2 = 0;
char operation = ' ';
public MyFrame() {
super("计算器");
setLayout(new BorderLayout());
jtf.setHorizontalAlignment(JTextField.RIGHT);
add(jtf, BorderLayout.NORTH);
add(jp, BorderLayout.CENTER);
jp.setLayout(new GridLayout(5, 3));
for (int i = 0; i < jb.length; i++) {
jb[i] = new JButton(String.valueOf(i));
jb[i].addActionListener(this);
jp.add(jb[i]);
}
jp.add(jbAdd);
jbAdd.addActionListener(this);
jp.add(jbMinus);
jbMinus.addActionListener(this);
jp.add(jbMultiply);
jbMultiply.addActionListener(this);
jp.add(jbDivide);
jbDivide.addActionListener(this);
jp.add(jbEqual);
jbEqual.addActionListener(this);
}
public void actionPerformed(ActionEvent arg0) {
JButton jb = (JButton) arg0.getSource();
if (jb == jbAdd) {
number1 = Integer.parseInt(jtf.getText());
jtf.setText("");
operation = '+';
} else if (jb == jbMinus) {
number1 = Integer.parseInt(jtf.getText());
jtf.setText("");
operation = '-';
} else if (jb == jbMultiply) {
number1 = Integer.parseInt(jtf.getText());
jtf.setText("");
operation = '*';
} else if (jb == jbDivide) {
number1 = Integer.parseInt(jtf.getText());
jtf.setText("");
operation = '/';
} else if (jb == jbEqual) {
number2 = Integer.parseInt(jtf.getText());
switch (operation) {
case '+':
jtf.setText(String.valueOf(number1 + number2));
break;
case '-':
jtf.setText(String.valueOf(number1 - number2));
break;
case '*':
jtf.setText(String.valueOf(number1 * number2));
break;
case '/':
jtf.setText(String.valueOf(number1 / number2));
break;
default:
break;
}
operation = ' ';
} else {
jtf.setText(jtf.getText() + jb.getText());
}
}
}
[此贴子已经被作者于2010-12-12 08:29:03编辑过]