1、import java、awt、BorderLayout; import java、awt、Color; import java、awt、GridLayout; import java、awt、event、ActionEvent; import java、awt、event、ActionListener; import java、awt、event、KeyEvent; import java、awt、event、KeyListener; import javax、swing、JButton; import javax、swing、JFrame; import javax、sw
2、ing、JPanel; import javax、swing、JTextField; /*使用java 语言开发一个简易计算器 * * */ public class TestJsq extends JFrame implements ActionListener, KeyListener { private JTextField jtf; private JButton jb_bk, jb_ce, jb_c; ﻩprivate String xs = ""; ﻩprivate double sum = 0; ﻩprivate int fh; pu
3、blic static void main(String[] args) { ﻩ new TestJsq()、creatCUI(); ﻩ} ﻩpublic void creatCUI() { ﻩﻩJFrame jf = new JFrame(); ﻩ jf、setTitle("计算器"); ﻩ jtf = new JTextField("0、”); ﻩjtf、setHorizontalAlignment(JTextField、RIGHT); ﻩﻩjf、add(jtf, BorderLayout、NORTH); ﻩﻩJPanel jp_main = new JPanel(ne
4、w BorderLayout()); ﻩjf、add(jp_main); ﻩﻩJPanel jp1 = new JPanel(new GridLayout(1, 3, 1, 1)); jb_bk = new JButton("Backspace"); ﻩ jb_bk、setForeground(Color、RED); ﻩﻩjb_bk、addActionListener(this); ﻩﻩjb_ce = new JButton("CE"); jb_ce、setForeground(Color、RED); jb_ce、addActionListener(this);
5、 ﻩﻩjb_c = new JButton("C"); ﻩ jb_c、setForeground(Color、RED); jb_c、addActionListener(this); ﻩ jp1、add(jb_bk); ﻩjp1、add(jb_ce); ﻩjp1、add(jb_c); jp_main、add(jp1, BorderLayout、NORTH); ﻩJPanel jp2 = new JPanel(new GridLayout(4, 5, 1, 1)); String str[] = { "7”, "8”, ”9”, "/", "sqrt", "4”,
6、 "5", ”6", "*”, "%”, "1", "2”, "3”, "-", "1/x”, "0", ”+/-”, ”、", ”+”, "=” }; ﻩﻩfor (int i = 0; i < 20; i++) { ﻩ ﻩJButton jb = new JButton(str[i]); ﻩﻩ jb、addActionListener(this); ﻩﻩﻩjb、setForeground(Color、blue); ﻩ if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) { ﻩ ﻩjb、setForegrou
7、nd(Color、RED); ﻩ } ﻩ ﻩjp2、add(jb); ﻩ } ﻩjp_main、add(jp2, BorderLayout、CENTER); ﻩﻩjf、setResizable(false); jf、setBounds(50, 50, 350, 350); ﻩﻩjf、setVisible(true); } Override public void actionPerformed(ActionEvent e) { ﻩﻩString s = e、getActionmand(); ﻩﻩif (s、equals("CE”) || s、equals(
8、"C”)) { ﻩﻩ xs = ”"; ﻩﻩjtf、setText("0、"); ﻩ} else if (s、equals(”Backspace")) { ﻩ ﻩString str = xs、substring(0, xs、length() — 1); xs = str; ﻩ ﻩjtf、setText(xs); } else if (s、equals(”7") || s、equals(”8") || s、equals("9") ﻩ || s、equals("4") || s、equals(”5") || s、equals("6”) ﻩﻩ || s、equ
9、als("1") || s、equals("2”) || s、equals("3") ﻩ || s、equals("0") || s、equals("、”)) { ﻩ ﻩxs = xs + s; ﻩﻩjtf、setText(xs); ﻩﻩ} else if (s、equals("+/-”)) { ﻩﻩﻩdouble x = Double、parseDouble(xs); ﻩ ﻩxs="" + (-x); ﻩﻩ jtf、setText(xs); ﻩ } else if (s、equals("/”)) { ﻩﻩ fh = 4; ﻩﻩint point = xs、inde
10、xOf("、"); if (point != -1) { ﻩﻩﻩ String strt = xs、substring(0, point); ﻩﻩ String z = xs、substring(point + 1, xs、length()); ﻩ ﻩint z_num = z、length(); ﻩﻩ sum = Integer、decode(strt) + (double) (Integer、decode(z)) ﻩﻩﻩ/ (10 * z_num); ﻩ } else { ﻩ sum = Integer、decode(xs); ﻩ } ﻩﻩﻩx
11、s = ""; ﻩ jtf、setText(null); ﻩ } else if (s、equals("*")) { ﻩﻩ fh = 3; ﻩint point = xs、indexOf("、"); ﻩ if (point != —1) { ﻩﻩ String strt = xs、substring(0, point); ﻩﻩ ﻩString z = xs、substring(point + 1, xs、length()); ﻩint z_num = z、length(); ﻩ ﻩﻩsum = Integer、decode(strt) + (double) (
12、Integer、decode(z)) ﻩﻩ / (10 * z_num); ﻩﻩ } else { ﻩﻩ ﻩsum = Integer、decode(xs); ﻩﻩ } ﻩﻩﻩxs = ""; ﻩ jtf、setText(null); ﻩ} else if (s、equals("—")) { ﻩﻩﻩfh = 2; ﻩ ﻩint point = xs、indexOf(”、"); ﻩ if (point != —1) { ﻩﻩﻩ String strt = xs、substring(0, point); ﻩﻩﻩ String z = xs、substring(p
13、oint + 1, xs、length()); ﻩ int z_num = z、length(); ﻩ sum = Integer、decode(strt) + (double) (Integer、decode(z)) ﻩ ﻩ / (10 * z_num); ﻩ } else { ﻩﻩ ﻩsum = Integer、decode(xs); ﻩﻩ} ﻩ xs = ""; ﻩ jtf、setText(null); } else if (s、equals(”+")) { ﻩ fh = 1; ﻩ int point = xs、indexOf("、");
14、 ﻩ if (point != -1) { ﻩ String strt = xs、substring(0, point); ﻩString z = xs、substring(point + 1, xs、length()); ﻩint z_num = z、length(); ﻩsum = Integer、decode(strt) + (double) (Integer、decode(z)) ﻩﻩ / (10 * z_num); ﻩ ﻩ} else { ﻩﻩﻩsum = Integer、decode(xs); } ﻩ ﻩxs = "”;
15、ﻩ jtf、setText(null); ﻩ } else if (s、equals(”sqrt”)) { ﻩﻩﻩdouble x = Double、parseDouble(xs); ﻩﻩdouble x1 = Math、sqrt(x); ﻩ xs = x1 + ”"; ﻩ jtf、setText(xs); ﻩ} else if (s、equals(”%")) { ﻩ double x = Double、parseDouble(xs); ﻩﻩﻩx=0、01 * x*x; ﻩ ﻩxs=x+”"; jtf、setText(xs); } else if (
16、s、equals("1/x”)) { ﻩﻩif (xs == ”0") { ﻩﻩﻩﻩjtf、setText(”除数不能为0"); ﻩﻩﻩ} else { ﻩﻩdouble x = Double、parseDouble(xs); ﻩ ﻩdouble x1 = 1 / x; ﻩﻩ ﻩxs = x1 + ""; ﻩﻩﻩﻩjtf、setText(String、valueOf(xs)); ﻩﻩﻩ} ﻩ} else if (s、equals("=”)) { ﻩ if (fh != 0) { ﻩﻩﻩ switch (fh) { ﻩﻩ ﻩcase 1: ﻩﻩﻩint
17、point1 = xs、indexOf("、”); ﻩ ﻩﻩif (point1 != -1) { ﻩ String s1 = xs、substring(0, point1); ﻩﻩﻩ ﻩﻩString z1 = xs、substring(point1 + 1, xs、length()); ﻩ ﻩﻩﻩﻩint z1_num = z1、length(); ﻩ ﻩ ﻩﻩxs = ""; ﻩﻩdouble ss1 = Integer、decode(s1) ﻩ ﻩ+ (double) Integer、decode(z1) / (10 * z1_num);
18、ﻩ ﻩﻩﻩsum = sum + ss1; ﻩﻩﻩ ﻩ} else { ﻩﻩﻩ ﻩ sum = sum + Integer、decode(xs); ﻩﻩ ﻩﻩxs = "”; } ﻩ ﻩ fh = 0; ﻩﻩﻩbreak; ﻩ ﻩcase 2: ﻩﻩ ﻩ int point2 = xs、indexOf("、"); ﻩﻩﻩﻩ if (point2 != -1) { ﻩﻩ ﻩString s2 = xs、substring(0, point2); ﻩﻩ String z2 = xs、substring(point2 + 1, xs、length(
19、)); ﻩﻩ ﻩ ﻩint z2_num = z2、length(); ﻩﻩ ﻩ xs = ""; ﻩﻩﻩdouble ss2 = Integer、decode(s2) ﻩ ﻩﻩﻩﻩ+ (double) Integer、decode(z2) / (10 * z2_num); ﻩ ﻩ sum = sum - ss2; ﻩﻩ ﻩ} else { ﻩ ﻩ ﻩﻩsum = sum — Integer、decode(xs); ﻩﻩﻩﻩ xs = ""; ﻩﻩ ﻩﻩ} ﻩﻩ ﻩfh = 0; ﻩ ﻩﻩﻩbreak; ﻩ case 3: ﻩ int
20、point3 = xs、indexOf("、”); ﻩﻩ ﻩif (point3 != -1) { ﻩ ﻩ String s3 = xs、substring(0, point3); ﻩﻩ ﻩ String z3 = xs、substring(point3 + 1, xs、length()); ﻩﻩ ﻩﻩint z1_num = z3、length(); ﻩﻩﻩxs = ""; ﻩﻩﻩ double s4 = Integer、decode(s3) ﻩﻩ ﻩﻩﻩﻩ + (double) Integer、decode(z3) / (10 * z1_num); ﻩ
21、ﻩ sum = sum * s4; ﻩﻩ} else { ﻩ ﻩ ﻩsum = sum * Integer、decode(xs); ﻩ ﻩﻩﻩxs = ""; ﻩ ﻩ } ﻩ ﻩﻩfh = 0; ﻩﻩ break; ﻩﻩﻩ case 4: ﻩﻩﻩ int point4 = xs、indexOf("、"); ﻩﻩﻩﻩ if (point4 != -1) { ﻩ ﻩﻩ ﻩString s4 = xs、substring(0, point4); ﻩﻩﻩﻩ ﻩString z4 = xs、substring(point4 + 1, xs、length())
22、 ﻩﻩ ﻩ int z4_num = z4、length(); ﻩ ﻩ ﻩﻩxs = ””; ﻩ double s5 = Integer、decode(s4) ﻩﻩﻩ ﻩﻩ + (double) Integer、decode(z4) / (10 * z4_num); ﻩ ﻩﻩ sum = sum / s5; } else { ﻩ ﻩ sum = sum / Integer、decode(xs); ﻩxs = ""; ﻩ } ﻩﻩ fh = 0; ﻩ ﻩﻩbreak; ﻩdefault: ﻩﻩﻩﻩbreak;
23、 ﻩﻩ } ﻩﻩxs = String、valueOf(sum); ﻩ ﻩjtf、setText(xs); ﻩﻩﻩfh = 0; ﻩ } else { jtf、setText(null); ﻩﻩﻩ} ﻩ} ﻩ} Override ﻩpublic void keyPressed(KeyEvent e) { // TODO Auto—generated method stub } ﻩOverride public void keyReleased(KeyEvent e) { ﻩ // TODO Auto-generated method stub } Override public void keyTyped(KeyEvent e) { ﻩﻩ// TODO Auto—generated method stub ﻩ} }






