import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JApplet {
private JTextField jtf = new JTextField(10);
private boolean newNumber = true;
private int result = 0;
private String op = "=";
public void init() {
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
JPanel westPanel = new JPanel();
westPanel.setLayout(new GridLayout(5, 0));
westPanel.add(new JButton(" "));
westPanel.add(new JButton("MC"));
westPanel.add(new JButton("MR"));
westPanel.add(new JButton("MS"));
westPanel.add(new JButton("M+"));
Panel centerPanel = new Panel();
centerPanel.setLayout(new BorderLayout());
Panel p1 = new Panel();
Panel p2 = new Panel();
p1.setLayout(new FlowLayout(FlowLayout.RIGHT));
p1.add(new JButton("Back"));
p1.add(new JButton("CE"));
p1.add(new JButton("C"));
p2.setLayout(new GridLayout(4, 5));
JButton bt;
p2.add(bt = new JButton("7"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("8"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("9"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("/"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("sqrt"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("4"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("5"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("6"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("*"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("%"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("1"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("2"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("3"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("-"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("1/x"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("0"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("+/-"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("."));
p2.add(bt = new JButton("+"));
bt.addActionListener(new Listener());
p2.add(bt = new JButton("="));
bt.addActionListener(new Listener());
centerPanel.add(p2, BorderLayout.CENTER);
centerPanel.add(p1, BorderLayout.NORTH);
p.add(centerPanel, BorderLayout.CENTER);
p.add(westPanel, BorderLayout.WEST);
setLayout(new BorderLayout());
add(p, BorderLayout.CENTER);
add(jtf, BorderLayout.NORTH);
}
class Listener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if ('0' <= actionCommand.charAt(0) &&
actionCommand.charAt(0) <= '9') {
if (newNumber) {
jtf.setText(actionCommand);
newNumber = false;
}
else {
jtf.setText(jtf.getText() + actionCommand);
}
}
else
if (newNumber) {
if (actionCommand.equals("-")) {
jtf.setText("-");
newNumber = false;
}
else
op = actionCommand;
}
else {
execute();
op = actionCommand;
}
}
void execute() {
int number = new Integer(jtf.getText()).intValue();
System.out.println("number " + op);
switch (op.charAt(0)) {
case '+': result += number; break;
case '-': result -= number; break;
case '*': result *= number; break;
case '/': result /= number; break;
case '%': result %= number; break;
case '=': result = number;
}
System.out.println("result "+result);
jtf.setText(new Integer(result).toString());
newNumber = true;
}
}
/**This main method enables the applet to run as an application*/
public static void main(String[] args) {
// Create a frame
JFrame frame = new JFrame("Exercise18_8");
// Create an instance of the applet
Exercise18_8 applet = new Exercise18_8();
// Add the applet instance to the frame
frame.add(applet, BorderLayout.CENTER);
// Invoke init() and start()
applet.init();
applet.start();
// Display the frame
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
創建一個計算器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.