皮皮网

【物品识别 源码】【分时波动率源码】【如何编译运行源码】java计算器源码是什么_java计算器源码是什么意思

2024-11-18 15:36:09 来源:舌像歪斜源码

1.java 计算器代码
2.用JAVA编写的计算计算科学计算器源代码
3.java 写的计算器源代码只实现加减乘除四则运算即可

java计算器源码是什么_java计算器源码是什么意思

java 计算器代码

       è¿™ä¸ªæ˜¯æœ€åˆé€‚你了!

       import java.awt.*;

       import java.awt.event.*;

       import javax.swing.*;

       public class Calculator extends JFrame {

       private Container container;

       private GridBagLayout layout;

       private GridBagConstraints constraints;

       private JTextField displayField;//计算结果显示区

       private String lastCommand;//保存+,-,*,/,=命令

       private double result;//保存计算结果

       private boolean start;//判断是否为数字的开始

       public Calculator() {

       super("计算器");

       container=getContentPane();

       layout=new GridBagLayout();

       container.setLayout(layout);

       constraints=new GridBagConstraints();

       start=true;

       result=0;

       lastCommand = "=";

       displayField=new JTextField();

       displayField.setText("0.0");

       displayField.setcolor(red);

       displayField.setHorizontalAlignment(JTextField.RIGHT);

       constraints.gridx=0;

       constraints.gridy=0;

       constraints.gridwidth=4;

       constraints.gridheight=1;

       constraints.fill=GridBagConstraints.BOTH;

       constraints.weightx=;

       constraints.weighty=;

       layout.setConstraints(displayField,constraints);

       container.add(displayField);

       ActionListener insert = new InsertAction();

       ActionListener command = new CommandAction();

       addButton("7",0,2,1,1,insert);

       addButton("8",1,2,1,1,insert);

       addButton("9",2,2,1,1,insert);

       addButton("/",3,5,1,1,command);

       addButton("4",0,3,1,1,insert);

       addButton("5",1,3,1,1,insert);

       addButton("6",2,3,1,1,insert);

       addButton("*",3,4,1,1,command);

       addButton("1",0,4,1,1,insert);

       addButton("2",1,4,1,1,insert);

       addButton("3",2,4,1,1,insert);

       addButton("-",3,3,1,1,command);

       addButton("0",1,5,1,1,insert);

       addButton("=",2,5,1,1,command);

       addButton(".",0,5,1,1,insert);

       addButton("+",3,2,1,1,command);

       setSize(,);

       setVisible(true);

       }

       private void addButton(String label,int row,int column,int with,int height,ActionListener listener) {

       JButton button=new JButton(label);

       constraints.gridx=row;

       constraints.gridy=column;

       constraints.gridwidth=with;

       constraints.gridheight=height;

       constraints.fill=GridBagConstraints.BOTH;

       button.addActionListener(listener);

       layout.setConstraints(button,constraints);

       container.add(button);

       }

       private class InsertAction implements ActionListener {

       public void actionPerformed(ActionEvent event) {

       String input=event.getActionCommand();

       if (start) {

       displayField.setText("");

       start=false;

       displayField.setText(displayField.getText()+input);

       }

       }

       }

       private class CommandAction implements ActionListener {

       public void actionPerformed(ActionEvent evt) {

       String command=evt.getActionCommand();

       if(start) {

       lastCommand=command;

       }else {

       calculate(Double.parseDouble(displayField.getText()));

       lastCommand=command;

       start=true;

       }

       }

       }

       public void calculate(double x) {

       if (lastCommand.equals("+")) result+= x;

       else if (lastCommand.equals("-")) result-=x;

       else if (lastCommand.equals("*")) result*=x;

       else if (lastCommand.equals("/")) result/=x;

       else if (lastCommand.equals("=")) result=x;

       displayField.setText(""+ result);

       }

       public static void main(String []args) {

       Calculator calculator=new Calculator();

       calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       }

       }

用JAVA编写的科学计算器源代码

       这个你参考一下。

       import javax.swing.*;

       //import javax.swing.event.*;

       import java.awt.*;

       import java.awt.event.*;

       //计算器显示结果的器源器源窗体

       class Result extends JPanel

       {

        JTextField text = new JTextField("0"); //text先是输入和结果

        Result()

        {

        text.setHorizontalAlignment(SwingConstants.RIGHT); //讲输入的数字或得到的结果在text的右边显示

        text.setEnabled(false); //文本框不能编辑

        setLayout(new BorderLayout()); //设定布局管理器边框布局

        add(text, BorderLayout.CENTER); //text放置在窗体的中间

        }

       }

       //计算器数字按钮定义面板

       class Number_Key extends JPanel

       {

        JButton zero = new JButton("0");//数字键0

        JButton one = new JButton("1");//数字键1

        JButton two = new JButton("2");//数字键2

        JButton three = new JButton("3");//数字键3

        JButton four = new JButton("4");//数字键4

        JButton five = new JButton("5");//数字键5

        JButton six = new JButton("6");//数字键6

        JButton seven = new JButton("7");//数字键7

        JButton eight = new JButton("8");//数字键8

        JButton nine = new JButton("9");//数字键9

        JButton plus = new JButton("+");

        JButton sub = new JButton("-");

        JButton mul = new JButton("*");

        JButton div = new JButton("/");

        JButton equal = new JButton("=");

        JButton ce = new JButton("ce");//置零键

        JButton point = new JButton(".");

        JButton tzero = new JButton("");

        Number_Key()

        {

        setLayout(new GridLayout(6, 3, , ));//定义布局管理器为网格布局

        //添加各个按钮键

        add(seven);

        add(eight);

        add(nine);

        add(four);

        add(five);

        add(six);

        add(one);

        add(two);

        add(three);

        add(zero);

        add(tzero);

        add(plus);

        add(sub);

        add(mul);

        add(div);

        add(point);

        add(equal);

        add(ce);

        }

       }

       //计算器主类

       class sakura extends JFrame implements ActionListener

       {

        Result result = new Result();//定义text的面板

        Number_Key number_key = new Number_Key();//定义按钮面板

        //当点击按钮+、-、码什码*、意思物品识别 源码/时,计算计算com = true

        boolean com = false;

        //当i=0时说明是器源器源分时波动率源码我们第一次输入,字符串sum不会累加

        int i = 0;

        //存放text的码什码内容

        String sum = "";

        //存放点击按钮+、-、意思*、计算计算/之前的器源器源数值

        double total = 0;

        //+、-、码什码*、意思/的计算计算如何编译运行源码代号分别为1,2,器源器源3,码什码4

        int symbol = 0;

        sakura()

        {

        super("Calculator");//设定标题

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定关闭窗体时退出程序

        JPanel pane = new JPanel();//定义主面板

        pane.setLayout(new BorderLayout());

        pane.add(result,图片魔墙 源码 BorderLayout.NORTH);

        pane.add(number_key, BorderLayout.SOUTH);

        number_key.one.addActionListener(this);//对1按钮添加监听事件

        number_key.two.addActionListener(this);//对2按钮添加监听事件

        number_key.three.addActionListener(this);//对3按钮添加监听事件

        number_key.four.addActionListener(this);//对4按钮添加监听事件

        number_key.five.addActionListener(this);//对5按钮添加监听事件

        number_key.six.addActionListener(this);//对6按钮添加监听事件

        number_key.seven.addActionListener(this);//对7按钮添加监听事件

        number_key.eight.addActionListener(this);//对8按钮添加监听事件

        number_key.nine.addActionListener(this);//对9按钮添加监听事件

        number_key.zero.addActionListener(this);//对0按钮添加监听事件

        number_key.ce.addActionListener(this);//对置零按钮添加监听事件

        number_key.plus.addActionListener(this);//对+按钮添加监听事件

        number_key.equal.addActionListener(this);//对=按钮添加监听事件

        number_key.sub.addActionListener(this);//对-按钮添加监听事件

        number_key.mul.addActionListener(this);//对*按钮添加监听事件

        number_key.div.addActionListener(this);//对/按钮添加监听事件

        number_key.tzero.addActionListener(this);//对按钮添加监听事件

        number_key.point.addActionListener(this);//对.按钮添加监听事件

        setContentPane(pane);

        pack();//初始化窗体大小为正好盛放所有按钮

        }

        //各个按钮触发的事件

        public void actionPerformed(ActionEvent e) {

        /*如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、开源码生成软件=,如果是那么com=true

        * 如果没有com= false;或者是否点击数字键,如果是i = 1,如果没有 i = 0;

        **/

        if (e.getSource() == number_key.one)

        {

        if (com || i == 0)

        {

        result.text.setText("1");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "1");

        }

        }

        else if (e.getSource() == number_key.two)

        {

        if (com || i == 0)

        {

        result.text.setText("2");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "2");

        }

        }

        else if (e.getSource() == number_key.three)

        {

        if (com || i == 0)

        {

        result.text.setText("3");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "3");

        }

        }

        else if (e.getSource() == number_key.four)

        {

        if (com || i == 0)

        {

        result.text.setText("4");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "4");

        }

        }

        else if (e.getSource() == number_key.five)

        {

        if (com || i == 0)

        {

        result.text.setText("5");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "5");

        }

        }

        else if (e.getSource() == number_key.six)

        {

        if (com || i == 0)

        {

        result.text.setText("6");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "6");

        }

        }

        else if (e.getSource() == number_key.seven)

        {

        if (com || i == 0)

        {

        result.text.setText("7");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "7");

        }

        }

        else if (e.getSource() == number_key.eight)

        {

        if (com || i == 0)

        {

        result.text.setText("8");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "8");

        }

        }

        else if (e.getSource() == number_key.nine)

        {

        if (com || i == 0)

        {

        result.text.setText("9");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        result.text.setText(sum + "9");

        }

        }

        /*对于0这个按钮有一定的说法,在我的程序里不会出现如这样的情况,我加了判断条件就是

        * 如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添

        * 加0;否则保持原来的数值不变

        */

        else if (e.getSource() == number_key.zero)

        {

        if (com || i == 0)

        {

        result.text.setText("0");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        if (Float.parseFloat(sum) > 0 || Float.parseFloat(sum) < 0)

        {

        result.text.setText(sum + "0");

        }

        else

        {

        if (sum.trim().indexOf(".") == -1)

        {

        result.text.setText(sum);

        }

        else

        {

        result.text.setText(sum + "0");

        }

        }

        }

        }

        else if (e.getSource() == number_key.ce)

        {

        result.text.setText("0");

        i = 0;

        com = true;

        }

        else if (e.getSource() == number_key.tzero)

        {

        if (com || i == 0)

        {

        result.text.setText("0");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        if (Float.parseFloat(sum) > 0 || Float.parseFloat(sum) < 0)

        {

        result.text.setText(sum + "");

        }

        else

        {

        if (sum.trim().indexOf(".") == -1)

        {

        result.text.setText(sum);

        }

        else

        {

        result.text.setText(sum + "");

        }

        }

        }

        }

        /*本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加,

        * 不存在就添加.

        */

        else if (e.getSource() == number_key.point)

        {

        if (com || i == 0)

        {

        result.text.setText("0.");

        com = false;

        i = 1;

        }

        else

        {

        sum = result.text.getText();

        if (sum.trim().indexOf(".") == -1)

        {

        result.text.setText(sum + ".");

        }

        else

        {

        result.text.setText(sum);

        }

        }

        }

        //获得点击+之前的数值

        else if (e.getSource() == number_key.plus)

        {

        com = true;

        i = 0;

        total = Double.parseDouble(result.text.getText());

        symbol = 1;

        }//获得点击-之前的数值

        else if (e.getSource() == number_key.sub)

        {

        com = true;

        i = 0;

        total = Double.parseDouble(result.text.getText());

        symbol = 2;

        }//获得点击*之前的数值

        else if (e.getSource() == number_key.mul)

        {

        com = true;

        i = 0;

        total = Double.parseDouble(result.text.getText());

        System.out.println(total);

        symbol = 3;

        }//获得点击/之前的数值

        else if (e.getSource() == number_key.div)

        {

        com = true;

        i = 0;

        total = Double.parseDouble(result.text.getText());

        symbol = 4;

        }

        else if (e.getSource() == number_key.equal)

        {

        switch (symbol)

        {

        case 1 ://计算加法

        {

        double ad =

        total + Double.parseDouble(result.text.getText());

        result.text.setText(ad + "");

        i = 0;

        sum = "";

        break;

        }

        case 2 ://计算减法

        {

        double ad =

        total - Double.parseDouble(result.text.getText());

        result.text.setText(String.valueOf(ad));

        i = 0;

        sum = "";

        break;

        }

        case 3 ://计算乘法

        {

        double ad =

        total * Double.parseDouble(result.text.getText());

        result.text.setText(ad + "");

        i = 0;

        sum = "";

        break;

        }

        case 4 ://计算除法

        {

        double ad =

        total / Double.parseDouble(result.text.getText());

        result.text.setText(ad + "");

        i = 0;

        sum = "";

        break;

        }

        }

        System.out.println(com);

        }

        }

        public static void main(String[] args)

        {

        sakura ww = new sakura();

        ww.setVisible(true) ;

        }

       }

java 写的计算器源代码只实现加减乘除四则运算即可

       import java.awt.*;

       import java.awt.event.*;

       import javax.swing.*;

       import java.util.Vector;

       public class calculator

        {

        String str1="0"; //运算数1 初值一定为0 为了程序的安全

        String str2="0"; //运算数2

        String fh="+"; //运算符

        String jg="";//结果

        //状态开关 重要

        int k1=1;//开关1 用于选择输入方向 将要写入str2或 str2

        int k2=1;//开关2 符号键 次数 k2>1说明进行的是2+3-9+8 这样的多符号运算

        int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0

        int k4=1;//开关4 str2 同上

        int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉

        JButton jicunqi; //寄存器 记录 是否连续按下符号键

        Vector vt=new Vector(,);

        JFrame frame=new JFrame("sunshine---计算器");

        JTextField jg_TextField=new JTextField(jg,);//列

        JButton clear_Button=new JButton("清除");

        JButton button0=new JButton("0");

        JButton button1=new JButton("1");

        JButton button2=new JButton("2");

        JButton button3=new JButton("3");

        JButton button4=new JButton("4");

        JButton button5=new JButton("5");

        JButton button6=new JButton("6");

        JButton button7=new JButton("7");

        JButton button8=new JButton("8");

        JButton button9=new JButton("9");

        JButton button_Dian=new JButton(".");

        JButton button_jia=new JButton("+");

        JButton button_jian=new JButton("-");

        JButton button_cheng=new JButton("*");

        JButton button_chu=new JButton("/");

        JButton button_dy=new JButton("=");

       public static void main(String[] args)

        {

        calculator calculator=new calculator();

        }

       calculator()

        {

        jg_TextField.setHorizontalAlignment(JTextField.RIGHT );//文本框 右对齐

        JPanel pan=new JPanel();

        pan.setLayout(new GridLayout(4,4,5,5));//四行四列 边距为5像素

        pan.add(button7);

        pan.add(button8);

        pan.add(button9);

        pan.add(button_chu);

        pan.add(button4);

        pan.add(button5);

        pan.add(button6);

        pan.add(button_cheng);

        pan.add(button1);

        pan.add(button2);

        pan.add(button3);

        pan.add(button_jian);

        pan.add(button0);

        pan.add(button_Dian);

        pan.add(button_dy);

        pan.add(button_jia);

        pan.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));//pan对象的边距

        JPanel pan2=new JPanel();

        pan2.add(jg_TextField);

        JPanel pan3=new JPanel(); //为什么要 多此一句呢? 因为我不会设置 按钮的大小

        pan3.setLayout(new FlowLayout());

        pan3.add(clear_Button);

        //clear_Button.setSize(,);//设置清零按钮的大小 吗的 不好使 !!

        frame.setLocation(, ); //主窗口 出现在位置

        frame.setResizable(false); //不能调大小

        frame.getContentPane().setLayout(new BorderLayout());

        frame.getContentPane().add(pan2,BorderLayout.NORTH);

        frame.getContentPane().add(pan,BorderLayout.CENTER);

        frame.getContentPane().add(pan3,BorderLayout.SOUTH);

        frame.pack();

        frame.setVisible(true);

        //以上是 控件 和 布局

        //下面是事件处理 程 序

        //--------------- 数 字 键 ----------------

        class JianTing implements ActionListener

        {

        public void actionPerformed(ActionEvent e)

        {

        String ss=((JButton)e.getSource()).getText();

        jicunqi=(JButton)e.getSource();

        vt.add(jicunqi);

        if (k1==1)

        {

        if(k3==1)

        {

        str1="";

        k5=1;//还原开关k5状态

        }

        str1=str1+ss;

        //k2=1;

        k3=k3+1;

        //System.out.println(str1);

        jg_TextField.setText(str1);//显示

        }

        else if(k1==2)

        {

        if (k4==1)

        {

        str2="";

        k5=1; //还原开关k5状态

        }

        str2=str2+ss;

        //k2=2;

        k4=k4+1;

        ///////////////测试////////////////

        jg_TextField.setText(str2);

        }

        }

        }

        //--------符 号-----------

        class JianTing_fh implements ActionListener

        {

        public void actionPerformed(ActionEvent e)

        {

        String ss2=((JButton)e.getSource()).getText();

        jicunqi=(JButton)e.getSource();

        vt.add(jicunqi);

        if(k2==1)

        {

        k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

        k5=1;

        fh=ss2;

        k2=k2+1;//按符号键的次数

        }

        else

        {

        int a=vt.size();

        JButton c=(JButton)vt.get(a-2); if(!(c.getText().equals("+"))&&!(c.getText().equals("-"))&&!(c.getText().equals("*"))&&!(c.getText().equals("/")))

        {

        yuns();

        str1=jg;

        k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

        k5=1;

        k4=1;

        fh=ss2;

        } k2=k2+1;

        }

        }

        }

        //--------清除-------

        class JianTing_clear implements ActionListener

        {

        public void actionPerformed(ActionEvent e)

        {

        jicunqi=(JButton)e.getSource();

        vt.add(jicunqi);

        k5=1;

        k2=1;

        k1=1;

        k3=1;

        k4=1;

        str1="0";

        str2="0";

        fh="";

        jg="";

        jg_TextField.setText(jg);

        vt.clear();

        }

        }

        //----------------等 于 ---------------------

        class JianTing_dy implements ActionListener

        {

        public void actionPerformed(ActionEvent e)

        {

        jicunqi=(JButton)e.getSource();

        vt.add(jicunqi);

        yuns();

        k1=1; //还原开关k1状态

        //str1=jg;

        k2=1;

        k3=1;//还原开关k3状态

        k4=1; //还原开关k4状态

        str1=jg; //为7+5= +5= 这种计算做准备

        }

        }

        //----------------小数点 ---------------------

        class JianTing_xiaos implements ActionListener

        {

        public void actionPerformed(ActionEvent e)

        {

        jicunqi=(JButton)e.getSource();

        vt.add(jicunqi);

        if(k5==1)

        {

        String ss2=((JButton)e.getSource()).getText();

        if (k1==1)

        {

        if(k3==1)

        {

        str1="";

        k5=1; //还原开关k5状态

        }

        str1=str1+ss2;

        //k2=1;

        k3=k3+1;

        //System.out.println(str1);

        jg_TextField.setText(str1);//显示

        }

        else if(k1==2)

        {

        if (k4==1)

        {

        str2="";

        k5=1; //还原开关k5状态

        }

        str2=str2+ss2;

        //k2=2;

        k4=k4+1;

        ///////////////测试////////////////

        jg_TextField.setText(str2);

        }

        }

        k5=k5+1;

        }

        }

        //注册 监听器

        JianTing_dy jt_dy=new JianTing_dy();

        JianTing jt= new JianTing();//临听数字键

        JianTing_fh jt_fh= new JianTing_fh();//临 听符 号键

        JianTing_clear jt_c=new JianTing_clear(); //清除键

        JianTing_xiaos jt_xs=new JianTing_xiaos();// 小数点 键

        button7.addActionListener(jt);

        button8.addActionListener(jt);

        button9.addActionListener(jt);

        button_chu.addActionListener(jt_fh);

        button4.addActionListener(jt);

        button5.addActionListener(jt);

        button6.addActionListener(jt);

        button_cheng.addActionListener(jt_fh);

        button1.addActionListener(jt);

        button2.addActionListener(jt);

        button3.addActionListener(jt);

        button_jian.addActionListener(jt_fh);

        button0.addActionListener(jt);

        button_Dian.addActionListener(jt_xs);

        button_dy.addActionListener(jt_dy);

        button_jia.addActionListener(jt_fh);

        clear_Button.addActionListener(jt_c);

        //关闭事件处理程序

        frame.addWindowListener(new WindowAdapter()

        {

        public void windowClosing(WindowEvent e)

        {

        System.exit(0);

        }

        });

        }

        //---------------计 算------------------

        public void yuns()

        {

        double a2,b2;//运算数1,2

        String c=fh;// 运算符

        double jg2=0 ;//结果

        if (c.equals(""))

        {

        //System.out.println("请输入运算符");

        jg_TextField.setText("请输入运算符");

        }

        else

        {

        System.out.println("str1:"+str1);//调试时 使 用

        System.out.println("str2:"+str2);//调试时 使 用

        System.out.println("运算符:"+fh);//调试时 使 用

        if (str1.equals(".")) //字符串 "." 转换成double型数据时 会出错 所以手工转

        str1="0.0";

        if (str2.equals("."))

        str2="0.0";

        a2=Double.valueOf(str1).doubleValue();

        b2=Double.valueOf(str2).doubleValue();

        System.out.println("double型的a2:"+a2); //调试时 使 用

        System.out.println("double型的b2:"+b2); //调试时 使 用

        if (c.equals("+"))

        {

        jg2=a2+b2;

        }

        if (c.equals("-"))

        {

        jg2=a2-b2;

        }

        if (c.equals("*"))

        {

        jg2=a2*b2;

        }

        if (c.equals("/"))

        {

        if(b2==0)

        {

        jg2=0;// by 0 cu!

        }

        else

        {

        jg2=a2/b2;

        }

        }

        System.out.println("double型a2"+fh+"b2结果:"+jg2);

        System.out.println();

        jg=((new Double(jg2)).toString());

        jg_TextField.setText(jg);

        }

       }

       }