资源描述
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、swing、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;
public 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(new 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);
ﻩﻩ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”, "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、setForeground(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("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、equals("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、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) (Integer、decode(z))
ﻩﻩﻩ/ (10 * z_num);
ﻩ } else {
ﻩ sum = Integer、decode(xs);
ﻩ }
ﻩﻩﻩxs = "";
ﻩ 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) (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(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 = "";
ﻩ jtf、setText(null);
} else if (s、equals(”+")) {
ﻩ fh = 1;
ﻩ 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) (Integer、decode(z))
ﻩﻩ / (10 * z_num);
ﻩ ﻩ} else {
ﻩﻩﻩsum = Integer、decode(xs);
}
ﻩ ﻩxs = "”;
ﻩ 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 (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 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);
ﻩ ﻩﻩﻩ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());
ﻩﻩ ﻩ ﻩ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 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);
ﻩﻩ 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());
ﻩﻩ ﻩ 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;
ﻩﻩ }
ﻩﻩ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
ﻩ}
}
展开阅读全文