-- 作者:admin
-- 发布时间:2008/12/6 16:58:23
-- 作业之五:计算器
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编辑过]
|