packageren.redface.demo;import java.awt.*;import java.awt.event.*;public classJisuanqi {public static voidmain(String[] args) {new MyFrame("计算器");
}
}class MyFrame extendsFrame {private static final long serialVersionUID = 1L;privateTextArea ta, tb;publicMyFrame(String title) {super(title);
SetTextAreas();
SetButtonArea();
SetMainFram();
}private voidSetButtonArea() {
addButton("7", 33, 28, 20, 178);
addButton("8", 33, 28, 58, 178);
addButton("9", 33, 28, 96, 178);
addButton("/", 33, 28, 134, 178);
addButton("%", 33, 28, 172, 178);
addButton("4", 33, 28, 20, 210);
addButton("5", 33, 28, 58, 210);
addButton("6", 33, 28, 96, 210);
addButton("*", 33, 28, 134, 210);
addButton("1/x", 33, 28, 172, 210);
addButton("1", 33, 28, 20, 242);
addButton("2", 33, 28, 58, 242);
addButton("3", 33, 28, 96, 242);
addButton("-", 33, 28, 134, 242);
addButton("0", 71, 28, 20, 274);
addButton(".", 33, 28, 96, 274);
addButton("+", 33, 28, 134, 274);
addButton("=", 33, 60, 172, 242);
}doublem, n;
String k;boolean flag = true;boolean flag2 = false;private void addButton(String string, int i, int j, int x, inty) {final Button b = newButton(string);
b.setLocation(x, y);
b.setSize(i, j);
b.setFont(new Font("标楷体", Font.BOLD, 15));
b.setBackground(Color.pink);
b.setForeground(Color.darkGray);
b.addMouseListener(newMouseAdapter() {
@Overridepublic voidmousePressed(MouseEvent e) {
counts();
}private voidcounts() {if (ta.getText().equals("") && (b.getActionCommand().equals("+") || b.getActionCommand().equals("-")|| b.getActionCommand().equals("*") || b.getActionCommand().equals("/")|| b.getActionCommand().equals("%") || b.getActionCommand().equals("1/x")|| b.getActionCommand().equals("="))) {
}else if (ta.getText().equals(".") && (b.getActionCommand().equals("+")|| b.getActionCommand().equals("-") || b.getActionCommand().equals("*")|| b.getActionCommand().equals("/") || b.getActionCommand().equals("%")|| b.getActionCommand().equals("1/x") || b.getActionCommand().equals("="))) {
}else{if (b.getActionCommand().equals("+") || b.getActionCommand().equals("-")|| b.getActionCommand().equals("*") || b.getActionCommand().equals("%")|| b.getActionCommand().equals("1/x") || b.getActionCommand().equals("/")) {if (flag2 = true) {
flag2= false;
}if(flag) {
n= newDouble(ta.getText()).doubleValue();
flag= false;
}else{if (k == "=") {
}else{
m= newDouble(ta.getText()).doubleValue();if (k == "-") {if (n == 0)
n=m;elsen= n -m;
}else if (k == "+") {if (n == 0)
n=m;elsen= n +m;
}else if (k == "*") {if (n == 0)
n=m;elsen= n *m;
}else if (k == "%") {if (n == 0)
n=m;elsem= m * 100;
}else if (k == "1/x") {if (n == 0)
n=m;elsen= 1 /m;
}else if (k == "/") {if (n == 0)
n=m;elsen= n /m;
}
}
}
k=b.getActionCommand();
ta.setText("");
}else if (b.getActionCommand().equals("=")) {
m= newDouble(ta.getText()).doubleValue();if (k == "+") {
ta.setText("");
ta.append(n+ "+" +m);
ta.append(System.getProperty("line.separator"));
n= n +m;
ta.append("=" +n);
}else if (k == "-") {
ta.setText("");
ta.append(n+ "-" +m);
ta.append(System.getProperty("line.separator"));
n= n -m;
ta.append("=" +n);
}else if (k == "*") {
ta.setText("");
ta.append(n+ "*" +m);
ta.append(System.getProperty("line.separator"));
n= n *m;
ta.append("=" +n);
}else if (k == "%") {
ta.setText("");
ta.append("%" +m);
ta.append(System.getProperty("line.separator"));
m= m * 100;
ta.append("=" + m + "%");
}else if (k == "1/x") {
ta.setText("");
ta.append(1 + "/" +m);
ta.append(System.getProperty("line.separator"));
n= 1 /m;
ta.append("=" +n);
}else if (k == "/") {
ta.setText("");
ta.append(n+ "/" +m);
ta.append(System.getProperty("line.separator"));
n= n /m;
ta.append("=" +n);
}
k= "=";
flag2= true;
}else{if(flag2) {
flag= true;
flag2= false;
ta.setText("");
m= n = 0;
}
ta.append(b.getActionCommand());
}
}
}
});this.add(b);
}private voidSetTextAreas() {
ta= new TextArea("0", 8, 52, 3);
ta.setBackground(Color.lightGray);
ta.setSize(190, 50);
ta.setFont(new Font("标楷体", Font.BOLD, 15));
ta.setLocation(20, 60);this.add(ta);
tb= new TextArea(" DESIGN BY Alec", 8, 52, 3);
tb.setBackground(Color.pink);
tb.setSize(190, 25);
tb.setFont(new Font("标楷体", Font.BOLD, 16));
tb.setForeground(Color.blue);
tb.setLocation(20, 130);this.add(ta);this.add(tb);
}
@SuppressWarnings("deprecation")private voidSetMainFram() {this.setLayout(null);this.setSize(220, 310);this.setVisible(true);this.setLocation(310, 340);this.setResizable(false);
ta.setEditable(false);
tb.setEditable(false);this.setCursor(Cursor.HAND_CURSOR);this.addWindowListener(newWindowAdapter() {public voidwindowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}