⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.java

📁 一个 简单的java 编写的绘图程序
💻 JAVA
字号:
package Calculator;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class Calculator extends JFrame {  JPanel contentPane;  BorderLayout borderLayout1 = new BorderLayout();//实例化控件  private JTextField txtNumber = new JTextField();                private JTextField txt = new JTextField();                private JButton jb0 = new JButton("0");                private JButton jb1 = new JButton("1");                private JButton jb2 = new JButton("2");                private JButton jb3 = new JButton("3");                private JButton jb4 = new JButton("4");                private JButton jb5 = new JButton("5");                private JButton jb6 = new JButton("6");                private JButton jb7 = new JButton("7");                private JButton jb8 = new JButton("8");                private JButton jb9 = new JButton("9");                private JButton jbsum = new JButton("+");                private JButton jbdec = new JButton("-");                private JButton jbride = new JButton("*");                private JButton jbrem = new JButton("/");                private JButton jbsqrt = new JButton("sqrt");                private JButton jbfshu = new JButton("1/x");                private JButton jbbfen = new JButton("%");                private JButton jbamount = new JButton("=");                private JButton jbZorF = new JButton("+/-");                private JButton jbdian = new JButton(".");                private JButton jbmc = new JButton("MC");                private JButton jbmr = new JButton("MR");                private JButton jbms = new JButton("MS");                private JButton jbmjia = new JButton("M+");                private JButton jbbackspace = new JButton("Backspace");                private JButton jbce = new JButton("CE");                private JButton jbc = new JButton("C");                private double tmp;                private int op;                private boolean bool;  //Construct the frame  public Calculator() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1);    this.setSize(new Dimension(400, 300));    this.setTitle("计算器");    txtNumber.setHorizontalAlignment(txtNumber.RIGHT);                txt.setBackground(Color.lightGray);                txt.disable();                //设置数据面板                JPanel pNumber = new JPanel(new GridLayout(4,5));                pNumber.add(jb7);                pNumber.add(jb8);                pNumber.add(jb9);                pNumber.add(jbrem);                pNumber.add(jbsqrt);                pNumber.add(jb4);                pNumber.add(jb5);                pNumber.add(jb6);                pNumber.add(jbride);    pNumber.add(jbbfen, null);    pNumber.add(jb1);    pNumber.add(jb2);                pNumber.add(jb3);                pNumber.add(jbdec);                pNumber.add(jbfshu);                pNumber.add(jbZorF);    pNumber.add(jb0);                pNumber.add(jbdian);                pNumber.add(jbsum);                pNumber.add(jbamount);		pNumber.setBorder(new EtchedBorder()); //               pNumber.setBorder(new LineBorder(Color.BLUE));                //设置清除面板                JPanel pClear = new JPanel(new GridLayout(1,4));                pClear.add(txt);        pClear.add(jbbackspace);        pClear.add(jbce);                pClear.add(jbc);                pClear.setBorder(new LineBorder(Color.BLUE));                //设置存储面板                JPanel pMemory = new JPanel(new GridLayout(4,1));                pMemory.add(jbmc);                pMemory.add(jbmr);                pMemory.add(jbms);                pMemory.add(jbmjia);                pMemory.setBorder(new LineBorder(Color.BLUE));                //设置综合面板                JPanel p = new JPanel(new BorderLayout());                p.add(pClear,BorderLayout.NORTH);                p.add(pMemory,BorderLayout.WEST);                p.add(pNumber,BorderLayout.CENTER);                p.setBorder(new EtchedBorder());                JPanel ptxt = new JPanel(new BorderLayout());                ptxt.add(txtNumber,BorderLayout.CENTER);                ptxt.setBorder(new LineBorder(Color.BLUE));                Container c = this.getContentPane();                c.setLayout(new BorderLayout());                c.add(ptxt,BorderLayout.NORTH);                c.add(p,BorderLayout.CENTER);                //设置窗体                int width=350,height=250;                this.setSize(width,height);                Dimension d = Toolkit.getDefaultToolkit().getScreenSize();                this.setLocation((d.width-width)/2,(d.height-height)/2);                this.setResizable(false);                this.setVisible(true);                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                //为按纽事件添加监听                //数字按纽,使用内部类  NumberListener;                jb0.addActionListener(new NumberListener());                jb1.addActionListener(new NumberListener());                jb2.addActionListener(new NumberListener());                jb3.addActionListener(new NumberListener());                jb4.addActionListener(new NumberListener());                jb5.addActionListener(new NumberListener());                jb6.addActionListener(new NumberListener());                jb7.addActionListener(new NumberListener());                jb8.addActionListener(new NumberListener());                jb9.addActionListener(new NumberListener());                //运算按纽,使用内部类  OperationListener;                jbsum.addActionListener(new OperationListener());                jbdec.addActionListener(new OperationListener());                jbride.addActionListener(new OperationListener());                jbrem.addActionListener(new OperationListener());                jbamount.addActionListener(new OperationListener());                jbsqrt.addActionListener(new OperationListener());                jbfshu.addActionListener(new OperationListener());                //正负号按纽                jbZorF.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e){                                if(txtNumber.getText().indexOf("-") == -1){                                        txtNumber.setText("-" + txtNumber.getText());                                }else{                                        int i = txtNumber.getText().length();                                        txtNumber.setText(txtNumber.getText().substring(1,i));                                }                        }                });                //小数点按纽                jbdian.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e){                                if(bool){                                        txtNumber.setText("0.");                                        bool = false;                                }                                if(txtNumber.getText().indexOf(".") == -1){                                        txtNumber.setText(txtNumber.getText() + ".");                                }                        }                });                //                //清除按纽                jbc.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e){                                txtNumber.setText("");                                tmp = 0;                                op = 0;                                bool = false;                        }                });                jbce.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e){                                txtNumber.setText("");                        }                });                jbbackspace.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e){                                int i = txtNumber.getText().length();                                txtNumber.setText(txtNumber.getText().substring(0,i-1));                        }                });                //存储按纽  }  //内部类,NumberListener 为数字监听类,用于数字按纽的监听        private class NumberListener implements ActionListener{                public void actionPerformed(ActionEvent e){                        if(bool){                                txtNumber.setText("");                                bool=false;                        }                        txtNumber.setText(txtNumber.getText() + e.getActionCommand());                }        }        //内部类,OperationListener 为运算按纽监听类,用于对四则运算按纽的监听        private class OperationListener implements ActionListener{                double res;                void result(){                        double tmpend = Double.parseDouble(txtNumber.getText());                        switch (op){                                case 1:                                        res = tmp + tmpend;                                        break;                                case 2:                                        res = tmp - tmpend;                                        break;                                case 3:                                        res = tmp * tmpend;                                        break;                                case 4:                                        try{                                                res = tmp / tmpend;                                        }catch(Exception ex){                                                        txtNumber.setText("除数不能为零");                                        }                                        break;                        }                        txtNumber.setText(new Double(res).toString());                        tmp = 0;                        op = 0;                }                public void actionPerformed(ActionEvent e){                        String str=e.getActionCommand();                        char s=str.charAt(0);                        if (op!=0){                                result();                        }                        bool=true;                        switch (s){                                case '+':                                        tmp = Double.parseDouble(txtNumber.getText());                                        op = 1;                                        break;                                case '-':                                        tmp = Double.parseDouble(txtNumber.getText());                                        op = 2;                                        break;                                case '*':                                        tmp = Double.parseDouble(txtNumber.getText());                                        op = 3;                                        break;                                case '/':                                        tmp = Double.parseDouble(txtNumber.getText());                                        op=4;                                        break;                                case '=':                                        result();                                        break;                        }                        if ("sqrt" == str){                                res = Math.sqrt(Double.parseDouble(txtNumber.getText()));                                txtNumber.setText(new Double(res).toString());                        }                        if ("1/x" == str){                                tmp = Double.parseDouble(txtNumber.getText());                                if (tmp != 0){                                        res = 1 / tmp;                                        txtNumber.setText(new Double(res).toString());                                }else{                                        txtNumber.setText("除数不能为零");                                }                        }                }        }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  public static void main(String[] args){  	new Calculator();	  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -