//package 娱乐;   import java.awt.Container;   import java.awt.FlowLayout;   import java.awt.GridLayout;   import java.awt.event.ActionEvent;   import java.awt.event.ActionListener;   import java.awt.event.ItemEvent;   import java.awt.event.ItemListener;   import java.text.DecimalFormat;   import javax.swing.*;   

public class 计算器 extends JFrame implements ActionListener, ItemListener {   private JButton an[];   

private JButton qingkong, zh;   

private JTextField k;   

private JPanel rq1, rq2, rq3;   

int zz = 1;   

private String string[] = { "7", "8", "9", "/", "6", "5", "4", "*", "3",       "2", "1", "-", "0", ".", "=", "+" };   

private String s = "", shu1 = "", shu2 = "", shu3 = "";   

private static int fo = 0;   

JComboBox a;   

private boolean ff = true;   

public 计算_复杂() {      super("进制计算器");      Container c = getContentPane();      c.setLayout(new FlowLayout());      rq1 = new JPanel();      k = new JTextField(13);      rq1.add(k);      qingkong = new JButton("C");      rq1.add(qingkong);      c.add(rq1);      rq3 = new JPanel();      a = new JComboBox();      a.addItem("10进制转换为2进制");      a.addItem("10进制转换为8进制");      a.addItem("10进制转换为16进制");      a.addItem("2进制转换为8进制");      a.addItem("2进制转换为10进制");      a.addItem("2进制转换为16进制");      a.addItem("8进制转换为2进制");      a.addItem("8进制转换为10进制");      a.addItem("8进制转换为16进制");      a.addItem("16进制转换为2进制");      a.addItem("16进制转换为8进制");      a.addItem("16进制转换为10进制");      rq3.add(a);      zh = new JButton("转");      rq3.add(zh);      c.add(rq3);      rq2 = new JPanel();      rq2.setLayout(new GridLayout(4, 4, 10, 10));      an = new JButton[string.length];      for (int i = 0; i < string.length; i++) {       an[i] = new JButton(string[i]);       an[i].addActionListener(this);       rq2.add(an[i]);      }      c.add(rq2);      qingkong.addActionListener(this);      zh.addActionListener(this);      a.addItemListener(this);      setSize(200, 250);      setVisible(true);      try {       JMenuItem itemNative=new JMenuItem("系统平台风格");       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 设置界面样式      } catch (Exception e) {       e.printStackTrace();      }      setBounds(300,300,300,300);      setSize(220, 270);      setVisible(true);   }   

public static void main(String[] args) {   

   计算_复杂 s = new 计算_复杂();      s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   }   

public void itemStateChanged(ItemEvent event) {      if (event.getStateChange() == ItemEvent.SELECTED) {       if (a.getSelectedItem().equals("10进制转换为2进制"))        zz = 1;       if (a.getSelectedItem().equals("10进制转换为8进制"))        zz = 2;       if (a.getSelectedItem().equals("10进制转换为16进制"))        zz = 3;       if (a.getSelectedItem().equals("2进制转换为8进制"))        zz = 4;       if (a.getSelectedItem().equals("2进制转换为10进制"))        zz = 5;       if (a.getSelectedItem().equals("2进制转换为16进制"))        zz = 6;       if (a.getSelectedItem().equals("8进制转换为2进制"))        zz = 7;       if (a.getSelectedItem().equals("8进制转换为10进制"))        zz = 8;       if (a.getSelectedItem().equals("8进制转换为16进制"))        zz = 9;       if (a.getSelectedItem().equals("16进制转换为2进制"))        zz = 10;       if (a.getSelectedItem().equals("16进制转换为8进制"))        zz = 11;       if (a.getSelectedItem().equals("16进制转换为10进制"))        zz = 12;      }   }   

public void actionPerformed(ActionEvent e) {      if (!(e.getSource() == an[3] || e.getSource() == an[7]        || e.getSource() == an[11] || e.getSource() == an[13]        || e.getSource() == an[14] || e.getSource() == an[15] || e        .getSource() == qingkong|| e.getSource() == zh)) {       if (e.getSource() == an[12]) {        s += e.getActionCommand();        char a = s.charAt(0);        if (a == '0') {         s = "0.";         k.setText(s);        }        else{         k.setText(s);         ff = true;        }   

     }         else {        s += e.getActionCommand();        k.setText(s);        ff = true;       }      } else {       if (e.getSource() == zh) {        if (k.getText().equals(""))         ;        else       {         jinzhi();         fo = 0;         shu1 = "";         s = "";        }       }       if (e.getSource() == qingkong) {        k.setText("");        fo = 0;        shu1 = "";        s = "";       }       if (e.getSource() == an[13]) {        String ss = s;        ss += e.getActionCommand();        char a = ss.charAt(0);        if (a == '.') {         s = "";        } else {         if (ss.matches("[0-9].")) {          s += e.getActionCommand();          k.setText(s);         }        }   

    }       if (ff) {        ff = false;        if (e.getSource() == an[3]) {         if (k.getText().equals(""))          ;         else {   

       if (shu1.equals("")) {           shu1 = k.getText();           k.setText("/");           s = "";           fo = 3;          } else {           shu2 = k.getText();           jishu(fo, shu1, shu2);           fo = 3;          }         }        }        if (e.getSource() == an[7]) {         if (k.getText().equals(""))          ;         else {          if (shu1.equals("")) {           shu1 = k.getText();           k.setText("*");           s = "";           fo = 7;          } else {           shu2 = k.getText();           jishu(fo, shu1, shu2);           fo = 7;          }         }        }        if (e.getSource() == an[11]) {         if (k.getText().equals(""))          ;         else {          if (shu1.equals("")) {           shu1 = k.getText();           k.setText("-");           s = "";           fo = 11;          } else {           shu2 = k.getText();           jishu(fo, shu1, shu2);           fo = 11;          }         }        }        if (e.getSource() == an[15]) {         if (k.getText().equals(""))          ;         else {          if (shu1.equals("")) {           shu1 = k.getText();           k.setText("+");           s = "";           fo = 15;          } else {           shu2 = k.getText();           jishu(fo, shu1, shu2);           fo = 15;          }         }        }        if (e.getSource() == an[14]) {         if (k.getText().equals("") || shu1.equals(""))          ff = true;         else {          shu2 = k.getText();          jishu(fo, shu1, shu2);         }        }       }      }   }   

public void jishu(int fj, String s1, String s2) {      DecimalFormat twoDigits = new DecimalFormat("0.00");      double a, b;      a = Double.parseDouble(s1);      b = Double.parseDouble(s2);      switch (fj) {      case 3:       shu3 = twoDigits.format((double) (a / b));       k.setText(shu3);       break;      case 7:       shu3 = twoDigits.format((double) (a * b));       k.setText(shu3);       break;      case 11:       shu3 = twoDigits.format((double) (a - b));       k.setText(shu3);       break;      case 15:       shu3 = twoDigits.format((double) (a + b));       k.setText(shu3);       break;      }      s = "";      shu1 = shu3;      shu2 = "";   }   

public void jinzhi() {   try{      if (zz == 1)       k.setText(Integer.toBinaryString(Integer.parseInt(k.getText())));      else if (zz == 2)       k.setText(Integer.toOctalString(Integer.parseInt(k.getText())));      else if (zz == 3)       k.setText(Integer.toHexString(Integer.parseInt(k.getText())));      else if (zz == 4) {       int a = j1(k.getText(), "[0-1]+", 2);       k.setText(Integer.toOctalString(a));      } else if (zz == 5) {       j1(k.getText(), "[0-1]+", 2);   

   } else if (zz == 6) {       int a = j1(k.getText(), "[0-1]+", 2);       k.setText(Integer.toHexString(a));      } else if (zz == 7) {       int a = j1(k.getText(), "[0-7]+", 8);       k.setText(Integer.toBinaryString(a));      } else if (zz == 8) {       j1(k.getText(), "[0-7]+", 8);      } else if (zz == 9) {       int a = j1(k.getText(), "[0-7]+", 8);       k.setText(Integer.toHexString(a));      } else if (zz == 10) {       int a = j2();       k.setText(Integer.toBinaryString(a));      } else if (zz == 11) {       int a = j2();       k.setText(Integer.toOctalString(a));      } else if (zz == 12) {       j2();      }   }   catch(Exception e)   {      JOptionPane.showMessageDialog(null, "检查输入的参数");   }   }   

public int j1(String zhuanhuan, String a1, int a3) {      if (zhuanhuan.matches(a1)) {       int bb, gg = 0, cc = 1;       String s = zhuanhuan;       StringBuffer ss = new StringBuffer(s);   

    ss.reverse();       for (int i = 0; i < ss.length(); i++) {        String jj = ss.charAt(i) + "";        bb = Integer.parseInt(jj);        if (i == 0)         gg += bb * cc;        else        gg += bb * (cc *= a3);       }       k.setText(gg + "");       return gg;      }      return 0;   }   

public int j2() {      if (k.getText().matches("[0-9,a,b,c,d,e,f]+")) {       int bb, gg = 0, cc = 1;       String s = k.getText();       StringBuffer ss = new StringBuffer(s);       ss.reverse();       for (int i = 0; i < ss.length(); i++) {        String jj = ss.charAt(i) + "";        System.out.println(jj);        if (jj.equals("a"))         jj = "10";        if (jj.equals("b"))         jj = "11";        if (jj.equals("c"))         jj = "12";        if (jj.equals("d"))         jj = "13";        if (jj.equals("e"))         jj = "14";        if (jj.equals("f"))         jj = "15";        System.out.println(jj);        bb = Integer.parseInt(jj);        if (i == 0)         gg += bb * cc;        else        gg += bb * (cc *= 16);       }       k.setText(gg + "");       return gg;      }      return 0;   }   

}  

计算器 java源代码相关推荐

  1. 数据库管理系统设计Java源代码_《数据库应用》课程设计人事管理系统(java源代码)...

    <数据库应用>课程设计人事管理系统(java源代码) <数据库应用>课程设计人事管理系统(java源代码) <数据库应用>课程设计--人事管理系统(java源代码) ...

  2. Java 源代码和 C 源代码的运行区别

    与其他程序的执行方式和编译方式不同. Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性. 请参考下图. https://www.cwi ...

  3. Android APK反编译得到Java源代码或资源文件

    一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...

  4. 解析java源代码_一步步解析java执行内幕

    对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...

  5. 转jpg java源程序_将pdf文件转成图片并删除java源代码

    将pdf文件转成图片并删除java源代码/** * 将pdf转成img */ public static void changePdfToImg() { try { File file = new F ...

  6. jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序

    jdk12源代码文件 JDK 11 Early Access Builds包含与JEP 330相关的预览功能("启动单个文件源代码程序"). 我之前在" Shebang即 ...

  7. JDK 11:轻松取出单文件Java源代码程序

    JDK 11 Early Access Builds包含与JEP 330相关的预览功能("启动单个文件源代码程序"). 我之前在" Shebang即将来到Java? &q ...

  8. Eclipse:如何附加Java源代码

    在Eclipse中,当您按Ctrl按钮并单击任何类名称时,IDE会将您带到该类的源文件. 这是项目中具有的类的正常行为. 但是,如果您也希望Java核心类具有相同的行为,则可以通过将Java源代码附加 ...

  9. java文件全是数字编码_批量将Java源代码文件的编码从GBK转为UTF-8

    最近在做一个项目,需要从以前的另外一个项目迁移大量源代码过来,但是由于另一个项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息都出现 ...

最新文章

  1. CCNA系列课程(1) 网络基础
  2. Greenplum【集群搭建 01】局域网 CentOS 7.9.2009 环境 GreenPlum 6.13.0 集群规划+配置+安装+内核参数调整(应用实例分享)
  3. VTK:Points之PoissonExtractSurface
  4. 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区
  5. Server.MapPath()的用法
  6. 黑马程序员 C语言:循环语句
  7. DX学习笔记之Surfaces
  8. python3.8.3安装时提示Detected Windows 7 SP1 without KB2533623
  9. ☆☆☆Windows服务器部署及原理☆☆☆
  10. 淘宝数据魔方技术架构解析【转】
  11. Java基础教程-01-Java简介与变量介绍
  12. 批量给word添加水印,word魔方顺利完成
  13. 深度学习框架之争:TensorFlow退守工业界,PyTorch主导学术界?
  14. Ubuntu上实现多分屏窗口管理
  15. 禁用Ctrl+Alt+Del最有效的方法
  16. gorm快捷查询手册
  17. GoKit3(V)学习笔记02_自定义产品数据点
  18. Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)
  19. eclipse svn too old to
  20. 【速览】2021年中国黄茶主产地生产情况分析:行业处于复兴起步阶段[图]

热门文章

  1. 5G商用加速冲刺,群雄逐鹿5G芯片市场
  2. 【Python教程】小白也能看懂的PPT批量转PDF代码
  3. MySQL官网下载方法
  4. 马小峰:区块链是一种“社会技术”,这个行业我们不能等待
  5. 951_WSL中emacs在org-mode中插入windows剪切板图片
  6. 集群操作对ssh及scp命令报错问题解决归纳
  7. 使用qt操作sqlite,报错attempt to write a readonly database
  8. 短视频去水印助手 抖音视频怎样伪原创
  9. 自动驾驶车辆运动控制过程中,对PID控制参数的优化和整定。 传统PID控制算法
  10. 温度检测之运算放大器