个人版java计算器

来源:互联网 发布:淘宝上有什么好的书店 编辑:程序博客网 时间:2024/05/06 12:31

/*java simple calculator

*writer:黑柠檬

*time:2011年9月

*/


import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Calcul extends JFrame implements ActionListener{

    //创建输入框
    private static JTextArea calText = new JTextArea(1,50);
    private static int mine=0;
    private static double num=1.0;

    Calcul(){
    
        JMenuBar menuBar=new JMenuBar();
        JMenu menu=new JMenu("帮助");
        setMenu(menu);

        menuBar.add(menu);
        setJMenuBar(menuBar);
                
        setTitle("calculator");
        setBounds(200,100,500,400);
        
        //创建主面板
        JPanel panelMain =new JPanel();
        //字体的设置
        Font font =new Font("宋体",NORMAL,25);
        panelMain.setLayout(new GridLayout(4,4));
        String sign []={"7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/",};
        
        //创建button        
        JButton button1 []= new JButton [16];
        for(int i=0;i<16;i++){
            
            button1[i]=new JButton(sign[i]);
            
            button1[i].setFont(font);
            panelMain.add(button1[i]);
        }
        //侧面板1
        JPanel panelWest=new JPanel();
        panelWest.setLayout(new GridLayout(4,2));
        String name1 []={"cos","tan","sin","cot","ln","√","⊥","@"};
        JButton button2 []=new JButton[8];
        for(int i=0;i<8;i++){

            button2[i]=new JButton(name1[i]);
            button2[i].setFont(font);
            panelWest.add(button2[i]);
        }
        //侧面板2
        JPanel panelEast =new JPanel();
        panelEast.setLayout(new GridLayout(2,1));
        String name2 []={"清空","退出"};
        JButton button3 []=new JButton[2];
        for(int i=0;i<2;i++){
            
            button3[i]=new JButton(name2[i]);
            button3[i].setFont(font);
            panelEast.add(button3[i]);
        }
        button3[0].addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {
                
                calText.setText("");
            }
            
        });
        button3[1].addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {
                
                System.exit(0);
            }
            
        });
        
        //添加输入框和按钮
        calText.setFont(font);
        add(calText,BorderLayout.NORTH);
        add(panelWest,BorderLayout.WEST);
        add(panelMain,BorderLayout.CENTER);
        add(panelEast,BorderLayout.EAST);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        setButton1(button1);
        setButton2(button2);
    }
    
    public void setMenu(JMenu menu){
        
        String str[]={"操作","关于"};
            
        final JMenuItem item0=new JMenuItem(str[0]);
        final JMenuItem item1=new JMenuItem(str[1]);
        menu.add(item0);
        menu.add(item1);
        
        item0.addActionListener(this);
        item1.addActionListener(this);
    }
    
    public void actionPerformed(ActionEvent a) {
        
        String action =a.getActionCommand();
        
        if(a.getSource() instanceof JMenuItem){
                
            if(action=="操作"){

                JFrame frame=new JFrame();
                frame.setBounds(100,200,200,200);                
                JLabel label=new JLabel("操作这个,自己体会吧!");
                frame.add(label);
                frame.setVisible(true);
            } else{
                
                JFrame frame=new JFrame();
                frame.setBounds(100,200,200,200);
                
                JLabel label=new JLabel("作者:黑柠檬");
                frame.add(label);
                frame.setVisible(true);
            }
        }
    }
    
    public void setButton1(JButton [] button){
        
        //给button添加监听器
        for(int i=0;i<16;i++){
            
            //首先的到button的名字
            final String cal=button[i].getActionCommand();
            //给button注册监听
            button[i].addActionListener(new ActionListener(){
                
                public void actionPerformed(ActionEvent e) {
                    
                    //输入数字时显示在JtextArea否则不显示
                    if(!cal.equals("+")&&!cal.equals("-")&&!cal.equals("*")&&!cal.equals("/")&&!cal.equals("=")){
                        
                        if(calText.getText().equals("")){
                            calText.setText(cal);
                        }else{
                            calText.append(cal);
                        }
                    } else if(cal.equals("+")){
                        mine=1;
                        num=Double.parseDouble(calText.getText());
                        calText.setText("");
                    } else if(cal.equals("-")){
                        mine=2;
                        num=Double.parseDouble(calText.getText());
                        calText.setText("");
                    } else if(cal.equals("*")){
                        mine=3;
                        num=Double.parseDouble(calText.getText());
                        calText.setText("");
                    } else if(cal.equals("/")){
                        mine=4;
                        num=Double.parseDouble(calText.getText());
                        calText.setText("");
                    } else{
                        if(mine==1){
                            num+=Double.parseDouble(calText.getText());
                        }else if(mine==2){
                            num-=Double.parseDouble(calText.getText());
                        }else if(mine==3){
                            num*=Double.parseDouble(calText.getText());
                        }else{
                            num/=Double.parseDouble(calText.getText());
                        }
                        calText.setText(""+num);
                    }
                }
                                    
            });
        }
        
    }
    public void setButton2(JButton [] button){
        
        //给button添加监听器
        for(int i=0;i<8;i++){
            
            //首先的到button的名字
            final String cal=button[i].getActionCommand();
            //给button注册监听
            button[i].addActionListener(new ActionListener(){
                
                public void actionPerformed(ActionEvent e) {
                    
                    //输入数字时显示在JtextArea否则不显示
                    if(cal.equals("cos")){
                        num=Double.parseDouble(calText.getText());
                        num=num/57.3;
                        calText.setText(""+Math.cos(num));
                    } else if(cal.equals("sin")){
                        num=Double.parseDouble(calText.getText());
                        num=num/57.3;
                        calText.setText(""+Math.sin(num));
                    } else if(cal.equals("ln")){
                        num=Double.parseDouble(calText.getText());
                        calText.setText(""+Math.log(num));
                    }  else if(cal.equals("tan")){
                        num=Double.parseDouble(calText.getText());
                        num=num/57.3;
                        calText.setText(""+Math.tan(num));
                    } else if(cal.equals("cot")){
                        num=Double.parseDouble(calText.getText());
                        num=1/Math.tan(num);
                        calText.setText(""+num);
                    } else if(cal.equals("√")){
                        num=Double.parseDouble(calText.getText());
                        calText.setText(""+Math.sqrt(num));
                    } else if(cal.equals("⊥")){
                        num=Double.parseDouble(calText.getText());
                        calText.setText(""+1/num);
                    } else{
                        JOptionPane.showMessageDialog( null,"不好意思,功能扩展中");
                    }
                }
            });
        }
        
    }
    public static void main(String[] args) {
        
            new Calcul();        
    }
}


原创粉丝点击