时间:2021-05-19
使用java来实现一个简单的计算器,供大家参考,具体内容如下
最近使用java制作了一个计算器,菜单栏里的功能没有实现,只是写一个版式,仅仅实现了计算功能 ,如果想要实现菜单栏功能可自行在该代码的基础上去实现。
话不多说直接上代码
package test;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; public class calculate extends JFrame implements ActionListener { private Container ct; private JButton[] jbs; private String[] str; private JTextField jTextField; //cal[0]用来存储第一次输入的数 //cal[1]用来存储运算符(+,-,*,/,%) //cal[2]用来存储第二次输入的数 //cal[3]用来存储结果 //cal[4]用来存储MS键所存储的数 //cal[5]用来获取要存入的值(用来给cal[4]赋值) private String[] cal = {"","","","","",""}; //_count和_count1始终相反,如果_count为true则表示正在输入cal[0]反之表示cal[0]输入完成,该输入cal[2] //当点过等号后将cal[3]的值赋给cal[0] private boolean _count = true; private boolean _count1 = false; public calculate() { super("计算器"); jbs = new JButton[28]; ct = this.getContentPane(); this.setBounds(100, 100, 315, 400); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); ct.setLayout(null); //菜单栏 JMenuBar jMenuBar = new JMenuBar(); JMenu jm = new JMenu("查看(V)"); JMenu jm1 = new JMenu("编辑(E)"); JMenu jm2 = new JMenu("帮助(H)"); jMenuBar.add(jm); jMenuBar.add(jm1); jMenuBar.add(jm2); this.setJMenuBar(jMenuBar); //输出框 jTextField = new JTextField("0"); jTextField.setFont(new Font("宋体", Font.BOLD, 25)); jTextField.setEditable(false); jTextField.setHorizontalAlignment(JTextField.RIGHT); jTextField.setBounds(5, 5, 285, 65); ct.add(jTextField); //按键 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 str = new String[]{"MC", "MR", "MS", "M+", "M-", "←", "CE", "C", "±", "√", "7", "8", "9", "/", "%", "4", "5", "6", "*", "1/x", "1", "2", "3", "-", "=", "0", ".", "+"}; int k = 0; for (int i = 75; i <= 195; i = i + 40) { for (int init = 10; init <= 290; init = init + 57) { JButton jButton = new JButton(str[k]); jbs[k] = jButton; jButton.setBounds(init, i, 52, 35); ct.add(jButton); k++; System.out.println(k); } } for (int i = 235; i < 265; i = i + 40) { for (int j = 10; j <= 181; j = j + 57) { JButton jButton = new JButton(str[k]); jButton.setBounds(j, i, 52, 35); ct.add(jButton); jbs[k] = jButton; k++; System.out.println(k); } } JButton jButton = new JButton(str[k]); jbs[k] = jButton; k++; System.out.println(k); jButton.setBounds(240, 235, 52, 75); ct.add(jButton); JButton jButton2 = new JButton(str[k]); System.out.println(str[k]); jButton2.setBounds(10, 275, 109, 35); ct.add(jButton2); jbs[k] = jButton2; k++; for (int i = 275; i < 310; i = i + 40) { for (int j = 124; j <= 181; j = j + 57) { JButton jButton1 = new JButton(str[k]); jButton1.setBounds(j, i, 52, 35); ct.add(jButton1); jbs[k] = jButton1; k++; } } for (int i = 0; i < 28; i++) { jbs[i].addActionListener(this); } this.setVisible(true); } public static void main(String[] args) { new calculate(); } @Override public void actionPerformed(ActionEvent actionEvent) { if (actionEvent.getActionCommand().equals(".")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("0")){ method(actionEvent); } else if (actionEvent.getActionCommand().equals("1")){ method(actionEvent); }else if(actionEvent.getActionCommand().equals("2")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("3")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("4")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("5")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("6")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("7")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("8")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("9")){ method(actionEvent); }else if (actionEvent.getActionCommand().equals("±")){ if(_count){ if (cal[0].contains(".")){ cal[0] = String.valueOf(Double.parseDouble(cal[0]) * (-1)); jTextField.setText(cal[0]); }else { cal[0] = String.valueOf(Integer.parseInt(cal[0]) * (-1)); jTextField.setText(cal[0]); } }else { if (cal[2].contains(".")){ cal[2] = String.valueOf(Double.parseDouble(cal[2]) * (-1)); jTextField.setText(cal[2]); }else { cal[2] = String.valueOf(Integer.parseInt(cal[2]) * (-1)); jTextField.setText(cal[2]); } } }else if(actionEvent.getActionCommand().equals("√")){ if(_count){ cal[0] = String.valueOf(Math.pow(Double.parseDouble(cal[0]),0.5)); jTextField.setText(cal[0]); }else { cal[2] = String.valueOf(Math.pow(Double.parseDouble(cal[2]),0.5)); jTextField.setText(cal[2]); } }else if(actionEvent.getActionCommand().equals("1/x")){ if(_count){ cal[0] = String.valueOf(1/Double.parseDouble(cal[0])); jTextField.setText(cal[0]); }else { cal[2] = String.valueOf(1/Double.parseDouble(cal[2])); jTextField.setText(cal[2]); } }else if(actionEvent.getActionCommand().equals("←")){ if(_count){ cal[0] = cal[0].substring(0,cal[0].length()-1); if(cal[0].equals("")){ jTextField.setText("0"); }else { jTextField.setText(cal[0]); } }else { cal[2] = cal[2].substring(0,cal[2].length()-1); if(cal[2].equals("")){ jTextField.setText("0"); }else { jTextField.setText(cal[2]); } } }else if(actionEvent.getActionCommand().equals("CE")){ if (_count){ cal[0]=""; jTextField.setText("0"); }else { cal[2]=""; jTextField.setText("0"); } }else if(actionEvent.getActionCommand().equals("C")){ _count = true; cal[0]=""; cal[1]=""; cal[2]=""; cal[3]=""; jTextField.setText("0"); }else if (actionEvent.getActionCommand().equals("+")){ if (!cal[0].equals("")&&!cal[2].equals("")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[0]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2])); }else { cal[0] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2])); } cal[2]=""; } cal[1] = "+"; _count=false; jTextField.setText(cal[1]); }else if (actionEvent.getActionCommand().equals("-")){ if (!cal[0].equals("")&&!cal[2].equals("")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[0]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2])); }else { cal[0] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2])); } cal[2]=""; } cal[1] = "-"; _count=false; jTextField.setText(cal[1]); }else if (actionEvent.getActionCommand().equals("*")){ if (!cal[0].equals("")&&!cal[2].equals("")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[0]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2])); }else { cal[0] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2])); } cal[2]=""; } cal[1] = "*"; _count=false; jTextField.setText(cal[1]); }else if (actionEvent.getActionCommand().equals("/")){ if (!cal[0].equals("")&&!cal[2].equals("")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[0]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2])); }else { cal[0] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2])); } cal[2]=""; } cal[1] = "/"; _count=false; jTextField.setText(cal[1]); }else if (actionEvent.getActionCommand().equals("%")){ cal[0]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2])); cal[2]=""; cal[1] = "%"; _count=false; jTextField.setText(cal[1]); }else if (actionEvent.getActionCommand().equals("=")){ if(cal[0].equals("")&&cal[2].equals("")){ jTextField.setText("0"); }else if(!cal[0].equals("")&&cal[2].equals("")){ jTextField.setText(cal[0]); }else if(!cal[0].equals("")&&!cal[2].equals("")){ if(cal[1].equals("+")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[3]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2])); }else { cal[3] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2])); } jTextField.setText(cal[3]); }else if (cal[1].equals("-")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[3]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2])); }else { cal[3] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2])); } jTextField.setText(cal[3]); }else if(cal[1].equals("*")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[3]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2])); }else { cal[3] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2])); } jTextField.setText(cal[3]); }else if (cal[1].equals("/")){ if (cal[0].contains(".") || cal[2].contains(".")){ cal[3]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2])); }else { cal[3] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2])); } jTextField.setText(cal[3]); }else if (cal[1].equals("%")){ cal[3]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2])); jTextField.setText(cal[3]); } } cal[0]=cal[3]; cal[2]=""; _count=true; _count1 = true; cal[5]=cal[0]; }else if(actionEvent.getActionCommand().equals("MC")){ cal[4]=""; }else if(actionEvent.getActionCommand().equals("MR")){ if(_count){ if(!cal[4].equals("")){ cal[0]=cal[4]; jTextField.setText(cal[0]); } }else { if(!cal[4].equals("")){ cal[2]=cal[4]; jTextField.setText(cal[2]); } } }else if(actionEvent.getActionCommand().equals("MS")){ if(_count){ cal[0]=""; } cal[4]=cal[5]; System.out.println("cal[5]"+cal[5]); System.out.println("ms:"+cal[4]); }else if(actionEvent.getActionCommand().equals("M+")){ if(!cal[4].equals("")){ if (cal[4].contains(".") || cal[5].contains(".")){ cal[4]=String.valueOf(Double.parseDouble(cal[4]) + Double.parseDouble(cal[5])); }else { cal[4] = String.valueOf(Integer.parseInt(cal[4]) + Integer.parseInt(cal[5])); } } }else if(actionEvent.getActionCommand().equals("M-")){ if(!cal[4].equals("")){ if (cal[4].contains(".") || cal[5].contains(".")){ cal[4]=String.valueOf(Double.parseDouble(cal[4]) - Double.parseDouble(cal[5])); }else { cal[4] = String.valueOf(Integer.parseInt(cal[4]) - Integer.parseInt(cal[5])); } } } } public void method(ActionEvent actionEvent){ if(_count){ if (_count1){ cal[0]=""; _count1=false; } cal[0] += actionEvent.getActionCommand(); cal[5]=cal[0]; System.out.println(cal[5]); }else { cal[2] += actionEvent.getActionCommand(); cal[5]=cal[2]; } jTextField.setText(actionEvent.getActionCommand()); }}效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现的简单计算器功能。分享给大家供大家参考,具体如下:使用python编写一款简易的计算器计算器效果图首先搭建计算器的面板:计算器面板
Javascript实现计算器:系列文章:JS实现计算器详解及实例代码(一)Javascript实现计算器时间功能详解及实例(二)小型JavaScript计算器
本文实例讲述了Android开发实现的简单计算器功能。分享给大家供大家参考,具体如下:这个Android计算器虽然还有点小bug,不过简单的计算功能还是没问题的
Javascript计算器:系列文章:JS实现计算器详解及实例代码(一)Javascript实现计算器时间功能详解及实例(二)Javascript计算器->添加
java简单的计算器程序实现实例:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;pub