已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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(stri);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);Overridepublic void actionPerformed(ActionEvent e) String s = e.getActionCommand();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.se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递物流呼吸道传染病防控预案
- 肝炎病毒的实验室检测与诊断
- 柴胡剂在头痛治疗中的临床应用
- 孕期糖尿病护理:孕期中医调理
- 合伙人协议书10篇
- 业主租赁合同违约
- 卖车协议合同10篇
- 2024年幼儿园安全管理制度
- 聘用合同到期后单位不续签四篇
- 仓储管理职责工作手册
- 大众Polo 2016款说明书
- 2022-2023学年英语(下)外国语八年级期末考试卷含答案
- 2023年年广州市年高中化学竞赛试卷
- 协和专家孕产大百科
- 2020年上海高中化学竞赛初赛试题
- 银行 集团客户管理办法模版
- 楚辞鉴赏与诵读智慧树知到答案章节测试2023年湖南理工学院
- 万科物业如何进行绩效考核
- 非标自动化设备导入方案可行性研究报告
- 创新创业基础(杨卫军)第六章 创业认知
- 直流电动机起动电阻的确定
评论
0/150
提交评论