package ren.redface.demo; import java.awt.*; import java.awt.event.*; public class Jisuanqi { public static void main(String[] args) { new MyFrame("计算器"); } } class MyFrame extends Frame { private static final long serialVersionUID = 1L; private TextArea ta, tb; public MyFrame(String title) { super(title); SetTextAreas(); SetButtonArea(); SetMainFram(); } private void SetButtonArea() { 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); } double m, n; String k; boolean flag = true; boolean flag2 = false; private void addButton(String string, int i, int j, int x, int y) { final Button b = new Button(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(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { counts(); } private void counts() { 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 = new Double(ta.getText()).doubleValue(); flag = false; } else { if (k == "=") { } else { m = new Double(ta.getText()).doubleValue(); if (k == "-") { if (n == 0) n = m; else n = n - m; } else if (k == "+") { if (n == 0) n = m; else n = n + m; } else if (k == "*") { if (n == 0) n = m; else n = n * m; } else if (k == "%") { if (n == 0) n = m; else m = m * 100; } else if (k == "1/x") { if (n == 0) n = m; else n = 1 / m; } else if (k == "/") { if (n == 0) n = m; else n = n / m; } } } k = b.getActionCommand(); ta.setText(""); } else if (b.getActionCommand().equals("=")) { m = new Double(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 void SetTextAreas() { 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 void SetMainFram() { 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(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }