欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    java计算器源代码.docx

    • 资源ID:3159665       资源大小:38.88KB        全文页数:18页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java计算器源代码.docx

    java计算器源代码java版计算器源代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.*;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.awt.Color;/* java版计算器*/public class Calculator extends JFrame final int WIN_W = 250, WIN_H = 250;JPanel myPanel, panelSuper;public Calculator / 主面板panelSuper = new JPanel;panelSuper.setLayout(null);/ 设置窗口位置double width = Toolkit.getDefaultToolkit.getScreenSize.width;double height = Toolkit.getDefaultToolkit.getScreenSize.height;this.setBounds(int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2,WIN_W, WIN_H);/ 窗口配置this.setTitle("java版计算器");this.validate;this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);/ 添加计算器按钮面板myPanel = new MyPanel;this.add(myPanel, BorderLayout.CENTER);public static void main(String args) new Calculator;/* 计算器按钮面板类*/class MyPanel extends JPanel implements ActionListener JButton button1, button2, button3, button4, button5, button6, button7,button8, button9, button0, buttonJia, buttonJian, buttonCheng,buttonChu, buttonDeng, buttonDian, buttonC, buttonDel,buttonZF, buttonGH;JTextField jTextField; / 计算器显示屏char oper; / 操作符String key, allKey = "1234567890.±del", jjccKey = "+-*/"BigDecimal d1, d2;boolean first;public MyPanel / 设置布局this.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 5);/ 计算器显示屏jTextField = new JTextField(21);jTextField.setHorizontalAlignment(JTextField.RIGHT);jTextField.setEditable(false);jTextField.setBackground(new Color(255, 255, 255);jTextField.setText("0");this.add(jTextField);/ 计算器按钮button1 = new JButton("1");button2 = new JButton("2");button3 = new JButton("3");button4 = new JButton("4");button5 = new JButton("5");button6 = new JButton("6");button7 = new JButton("7");button8 = new JButton("8");button9 = new JButton("9");button0 = new JButton("0");buttonJia = new JButton("+");buttonJian = new JButton("-");buttonCheng = new JButton("*");buttonChu = new JButton("/");buttonDeng = new JButton("=");buttonDian = new JButton(".");buttonDel = new JButton("del");buttonC = new JButton("c");buttonZF = new JButton("±");buttonGH = new JButton("");button1.setPreferredSize(new Dimension(55, 30);button2.setPreferredSize(new Dimension(55, 30);button3.setPreferredSize(new Dimension(55, 30);button4.setPreferredSize(new Dimension(55, 30);button5.setPreferredSize(new Dimension(55, 30);button6.setPreferredSize(new Dimension(55, 30);button7.setPreferredSize(new Dimension(55, 30);button8.setPreferredSize(new Dimension(55, 30);button9.setPreferredSize(new Dimension(55, 30);button0.setPreferredSize(new Dimension(55, 30);buttonJia.setPreferredSize(new Dimension(55, 30);buttonJian.setPreferredSize(new Dimension(55, 30);buttonCheng.setPreferredSize(new Dimension(55, 30);buttonChu.setPreferredSize(new Dimension(55, 30);buttonDeng.setPreferredSize(new Dimension(55, 30);buttonDian.setPreferredSize(new Dimension(55, 30);buttonDel.setPreferredSize(new Dimension(55, 30);buttonC.setPreferredSize(new Dimension(55, 30);buttonZF.setPreferredSize(new Dimension(55, 30);buttonGH.setPreferredSize(new Dimension(55, 30);this.add(buttonDel);this.add(buttonC);this.add(buttonZF);this.add(buttonGH);this.add(button1);this.add(button2);this.add(button3);this.add(buttonJia);this.add(button4);this.add(button5);this.add(button6);this.add(buttonJian);this.add(button7);this.add(button8);this.add(button9);this.add(buttonCheng);this.add(button0);this.add(buttonDian);this.add(buttonDeng);this.add(buttonChu);buttonDel.addActionListener(this);buttonC.addActionListener(this);buttonZF.addActionListener(this);buttonGH.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);button7.addActionListener(this);button8.addActionListener(this);button9.addActionListener(this);button0.addActionListener(this);buttonJia.addActionListener(this);buttonJian.addActionListener(this);buttonCheng.addActionListener(this);buttonChu.addActionListener(this);buttonDeng.addActionListener(this);buttonDian.addActionListener(this);/ 计算器初始化init;/* 计算器初始化*/public void init d1 = new BigDecimal("0");d1 = new BigDecimal("0");key = "="oper = '='jTextField.setText("0");first = true; / 用于标记是否进行连续操作/* 按钮监听*/public void actionPerformed(ActionEvent e) JButton b = (JButton) e.getSource;if (b = buttonDian) / 按下.jTextField.setText(jTextField.getText + ".");if (first) d2 = d1 = getNum; else d2 = getNum; else if (b = buttonZF) / 按下±BigDecimal d = getNum;d = new BigDecimal("0").subtract(d);setFormatNum(d);if (first) d2 = d1 = getNum; else d2 = getNum; else if (b = buttonDel) / 按下delif (jTextField.getText.length = 1| jTextField.getText.length = 2&& jTextField.getText.startsWith("-") jTextField.setText("0"); else String s = jTextField.getText;s = s.substring(0, s.length - 1);if (s.endsWith("E+") | s.endsWith("E-")s = s.substring(0, s.length - 2);jTextField.setText(s);if (first) d2 = d1 = getNum; else d2 = getNum; else if (b = buttonC) / 按下cinit; else if (b = buttonJia) / 按下+BigDecimal s;if (!first && allKey.indexOf(key) &gt= 0) if (oper = '-' | oper = '/') s = operate(d1, oper, d2); else s = operate(d2, oper, d1);setFormatNum(s);/ 如果不是第一次,且上一次操作是对数字进行操作else first = false;d2 = d1 = getNum;/ System.out.print("111我执行啦n");oper = '+' else if (b = buttonJian) / 按下-BigDecimal s;if (!first && allKey.indexOf(key) &gt= 0) s = operate(d1, oper, d2);setFormatNum(s);/ 如果不是第一次,且上一次操作是对数字进行操作else first = false;d2 = d1 = getNum;oper = '-' else if (b = buttonCheng) / 按下*BigDecimal s;if (!first && allKey.indexOf(key) &gt= 0) if (oper = '-' | oper = '/') s = operate(d1, oper, d2); else s = operate(d2, oper, d1);setFormatNum(s);/ 如果不是第一次,且上一次操作是对数字进行操作else first = false;d2 = d1 = getNum;oper = '*' else if (b = buttonChu) / 按下/BigDecimal s;if (!first && allKey.indexOf(key) &gt= 0) s = operate(d1, oper, d2);setFormatNum(s);/ 如果不是第一次,且上一次操作是对数字进行操作else first = false;d2 = d1 = getNum;oper = '/' else if (b = buttonGH) / 按下平方根if (jTextField.getText.startsWith("-") init;return;BigDecimal d = getNum;MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN);d = new BigDecimal(Math.sqrt(d.doubleValue), mc);setFormatNum(d);if (first) d2 = d1 = getNum; else d2 = getNum; else if (b = buttonDeng) / 按下=BigDecimal s = null;d2 = getNum;if (!key.equals("=") s = operate(d1, oper, d2); else s = operate(d2, oper, d1);if (oper != '=' && !key.equals("=") / 上一次操作为 +-*/d1 = getNum;setFormatNum(s);first = true; else / 按下其他按钮if (this.jTextField.getText.equals("0")| allKey.indexOf(key) = -1) this.jTextField.setText(b.getText); else this.jTextField.setText(jTextField.getText + b.getText);if (first) d2 = d1 = getNum; else d2 = getNum;/ d2作被加数:d2+d1key = b.getText;/* 获取操作数* return 操作数*/public BigDecimal getNum BigDecimal d = new BigDecimal(jTextField.getText);return d;public void setFormatNum(BigDecimal dd) MathContext mc = new MathContext(18, RoundingMode.HALF_DOWN);BigDecimal d = new BigDecimal(dd.toString, mc);String num = d.toString;if (num.endsWith(".0")num = num.replaceAll(".0", "");this.jTextField.setText(num);/* 计算* param a1* 操作数1* param c* 操作符* param a2* 操作数2* return*/public BigDecimal operate(BigDecimal a1, char c, BigDecimal a2) MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN);switch (c) case '+':return a1.add(a2);case '-':return a1.subtract(a2);case '*':return a1.multiply(a2);case '/':if (pareTo(new BigDecimal("0") = 0) init;return new BigDecimal("0");return a1.divide(a2, mc);default:return a2;

    注意事项

    本文(java计算器源代码.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开