当前位置: 首页 > article >正文

计算器代码java_计算器 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;

}

}

http://www.lryc.cn/news/2415683.html

相关文章:

  • 搜索引擎优化和高级使用技巧指南
  • 高考数据可视化:高考大省河南省参加人数高达125万,全国第一
  • 简单c语言入门
  • 信息学奥赛一本通·编程启蒙 C++版 3011-3020(10题)
  • 快速搭建24小时不间断直播间的完整代码包及搭建教程
  • 第二讲:网线的制作方法及步骤
  • 如何用ASP代码实现虚拟主机
  • 如何购买公网IP?
  • web页面上联系QQ客服功能实现——一行代码搞定
  • Java大数据处理:如何使用Java技术实现高效的大数据处理
  • 基于PHP后台微信医院预约挂号小程序系统设计与实现(安装部署+源码+文档)
  • 局域网内建网站教程,如何零成本搭建自己的网站?
  • 半带滤波器
  • Android记录25-WebView实现离线缓存阅读
  • 新浪短地址API
  • 5.架构师 如何架构选型一个项目
  • python初学者超简单的会员信息登录系统,增删查改功能
  • 在Linux机器上部署项目的步骤及其细节
  • java入门教程
  • 大数据平台,Hadoop集群架构,概述及原理
  • 使用计算机教室的注意事项,学生计算机房(电脑室)使用须知
  • 微服务和分布式的概念和区别
  • 使用phpstudy创建本地虚拟主机
  • c 语言sort函数,浅析C/C++中sort函数的用法
  • HTML制作简易个人简历(表单)
  • CDlinux如何制作U盘启动(附带Minidwep-gtk工具)
  • Android天天飞车游戏辅助系统
  • LOL 战斗力查询
  • 雅思考试费发票申请及报销
  • [备忘] VIM 常用操作 [光标移动,编辑,搜索]