计算器 java源代码
//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源代码相关推荐
- 数据库管理系统设计Java源代码_《数据库应用》课程设计人事管理系统(java源代码)...
<数据库应用>课程设计人事管理系统(java源代码) <数据库应用>课程设计人事管理系统(java源代码) <数据库应用>课程设计--人事管理系统(java源代码) ...
- Java 源代码和 C 源代码的运行区别
与其他程序的执行方式和编译方式不同. Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性. 请参考下图. https://www.cwi ...
- Android APK反编译得到Java源代码或资源文件
一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...
- 解析java源代码_一步步解析java执行内幕
对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...
- 转jpg java源程序_将pdf文件转成图片并删除java源代码
将pdf文件转成图片并删除java源代码/** * 将pdf转成img */ public static void changePdfToImg() { try { File file = new F ...
- jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序
jdk12源代码文件 JDK 11 Early Access Builds包含与JEP 330相关的预览功能("启动单个文件源代码程序"). 我之前在" Shebang即 ...
- JDK 11:轻松取出单文件Java源代码程序
JDK 11 Early Access Builds包含与JEP 330相关的预览功能("启动单个文件源代码程序"). 我之前在" Shebang即将来到Java? &q ...
- Eclipse:如何附加Java源代码
在Eclipse中,当您按Ctrl按钮并单击任何类名称时,IDE会将您带到该类的源文件. 这是项目中具有的类的正常行为. 但是,如果您也希望Java核心类具有相同的行为,则可以通过将Java源代码附加 ...
- java文件全是数字编码_批量将Java源代码文件的编码从GBK转为UTF-8
最近在做一个项目,需要从以前的另外一个项目迁移大量源代码过来,但是由于另一个项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息都出现 ...
最新文章
- CCNA系列课程(1) 网络基础
- Greenplum【集群搭建 01】局域网 CentOS 7.9.2009 环境 GreenPlum 6.13.0 集群规划+配置+安装+内核参数调整(应用实例分享)
- VTK:Points之PoissonExtractSurface
- 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区
- Server.MapPath()的用法
- 黑马程序员 C语言:循环语句
- DX学习笔记之Surfaces
- python3.8.3安装时提示Detected Windows 7 SP1 without KB2533623
- ☆☆☆Windows服务器部署及原理☆☆☆
- 淘宝数据魔方技术架构解析【转】
- Java基础教程-01-Java简介与变量介绍
- 批量给word添加水印,word魔方顺利完成
- 深度学习框架之争:TensorFlow退守工业界,PyTorch主导学术界?
- Ubuntu上实现多分屏窗口管理
- 禁用Ctrl+Alt+Del最有效的方法
- gorm快捷查询手册
- GoKit3(V)学习笔记02_自定义产品数据点
- Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)
- eclipse svn too old to
- 【速览】2021年中国黄茶主产地生产情况分析:行业处于复兴起步阶段[图]
热门文章
- 5G商用加速冲刺,群雄逐鹿5G芯片市场
- 【Python教程】小白也能看懂的PPT批量转PDF代码
- MySQL官网下载方法
- 马小峰:区块链是一种“社会技术”,这个行业我们不能等待
- 951_WSL中emacs在org-mode中插入windows剪切板图片
- 集群操作对ssh及scp命令报错问题解决归纳
- 使用qt操作sqlite,报错attempt to write a readonly database
- 短视频去水印助手 抖音视频怎样伪原创
- 自动驾驶车辆运动控制过程中,对PID控制参数的优化和整定。 传统PID控制算法
- 温度检测之运算放大器