一个简单的计算器(java)

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * Created by thinkpad on 2017/3/23.
 */
public class GameFrame extends JFrame{
    private JButton a1,a2,a3,a4,a5,a6,a7,a8,a9,a0;
    private JButton b1,b2,b3,b4,b5,b6;
    private JButton ac,pingfang,zhengfu,baifen;
    private JPanel p0,p1,p2,p3,p4,p5;
    private JMenuBar mb1;
    private JMenu m1,m2;
    private JMenuItem mi1,mi2,mi3;
    private TextField tf1;
    private JButton button_test;
    double flag1=0,flag2=0,flag3=1,flag=0;
    char diag='0',equal='0';
    double i=0;
    boolean kaiguan=false;


    public static void main(String[] args) {
        new GameFrame();
    }
    public GameFrame(){
        this.setTitle("calculator");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setLocation(200,200);
        this.setSize(300,380);
        this.setLayout(new GridLayout(6,1));
        this.setResizable(false);
        p0=new JPanel();p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel();
        this.add(p0);
        this.add(p1);
        this.add(p2);
        this.add(p3);
        this.add(p4);
        this.add(p5);



        mb1=new JMenuBar();
        m1 =new JMenu("系统");
        m2 =new JMenu("结束");
        mi1=new JMenuItem("开发人员");
        mi2=new JMenuItem("帮助");
        mi3=new JMenuItem("over");
        mb1.add(m1);mb1.add(m2);
        m1.add(mi1);m1.add(mi2);m2.add(mi3);
        tf1=new TextField(30);

        p0.add(mb1);
        FlowLayout f1=new FlowLayout(FlowLayout.CENTER,10,10);

        p0.setLayout(f1);
        p1.setLayout(f1);
        p2.setLayout(f1);
        p3.setLayout(f1);
        p4.setLayout(f1);
        p5.setLayout(f1);
        p1.add(tf1);

        a1=new JButton("1");
        a2=new JButton("2");
        a3=new JButton("3");
        a4=new JButton("4");
        a5=new JButton("5");
        a6=new JButton("6");
        a7=new JButton("7");
        a8=new JButton("8");
        a9=new JButton("9");
        a0=new JButton("0");
        b1=new JButton("+");
        b2=new JButton("-");
        b3=new JButton("*");
        b4=new JButton("/");
        b5=new JButton("=");
        b6=new JButton(".");
        ac=new JButton("AC");
        baifen=new JButton("%");
        zhengfu =new JButton("+/-");
        pingfang=new JButton("^");
        button_test=new JButton();


        p2.add(a1);p2.add(a2);p2.add(a3);p2.add(b1);p2.add(ac);
        p3.add(a4);p3.add(a5);p3.add(a6);p3.add(b2);p3.add(zhengfu);
        p4.add(a7);p4.add(a8);p4.add(a9);p4.add(b3);p4.add(pingfang);
        p5.add(b6);p5.add(a0);p5.add(b5);p5.add(b4);p5.add(baifen);
        a1.addActionListener( new keylistener());
        a2.addActionListener( new keylistener());
        a3.addActionListener( new keylistener());
        a4.addActionListener( new keylistener());
        a5.addActionListener( new keylistener());
        a6.addActionListener( new keylistener());
        a7.addActionListener( new keylistener());
        a8.addActionListener( new keylistener());
        a9.addActionListener( new keylistener());
        a0.addActionListener( new keylistener());
        b1.addActionListener( new keylistener());
        b2.addActionListener( new keylistener());
        b3.addActionListener( new keylistener());
        b4.addActionListener( new keylistener());
        b5.addActionListener( new keylistener());
        b6.addActionListener( new keylistener());
        zhengfu.addActionListener( new keylistener());
        pingfang.addActionListener( new keylistener());
        baifen.addActionListener( new keylistener());
        ac.addActionListener( new keylistener());
        mi1.addActionListener( new keylistener());
        mi2.addActionListener( new keylistener());
        mi3.addActionListener( new keylistener());






        this.setVisible(true);

    }
    class keylistener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {


            if (e.getSource()==a1){
                System.out.println("1");
                button_test=a1;
                tf1.setText(tf1.getText()+ button_test.getText());
                flag=flag*10+1;
                if (kaiguan) {
                    i++;
                }


            }else if (e.getSource()==a2){
                System.out.println("2");
                button_test=a2;
                tf1.setText(tf1.getText()+ button_test.getText());
                flag=flag*10+2;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a3) {
                System.out.println("3");
                button_test = a3;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+3;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a4) {
                System.out.println("4");
                button_test = a4;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+4;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a5) {
                System.out.println("5");
                button_test = a5;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+5;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a6) {
                System.out.println("6");
                button_test = a6;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+6;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a7) {
                System.out.println("7");
                button_test = a7;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+7;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a8) {
                System.out.println("8");
                button_test = a8;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+8;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a9) {
                System.out.println("9");
                button_test = a9;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10+9;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==a0) {
                System.out.println("0");
                button_test = a0;
                tf1.setText(tf1.getText()+button_test.getText());
                flag=flag*10;
                if (kaiguan) {
                    i++;
                }
            }else if (e.getSource()==b1) {
                System.out.println("+");
                button_test = b1;
                tf1.setText(tf1.getText()+button_test.getText());
                diag='+';
                flag1=flag/(Math.pow(10,i));
                flag=0;
                i=0;
                kaiguan=false;


            }else if (e.getSource()==b2) {
                System.out.println("-");
                button_test = b2;
                tf1.setText(tf1.getText()+button_test.getText());
                diag='-';
                flag1=flag/(Math.pow(10,i));
                flag=0;
                i=0;
                kaiguan=false;
            }else if (e.getSource()==b3) {
                System.out.println("*");
                button_test = b3;
                tf1.setText(tf1.getText()+button_test.getText());
                diag='*';
                flag1=flag/(Math.pow(10,i));
                flag=0;
                i=0;
                kaiguan=false;
            }else if (e.getSource()==b4) {
                System.out.println("/");
                button_test = b4;
                tf1.setText(tf1.getText()+button_test.getText());
                diag='/';
                flag1=flag/(Math.pow(10,i));
                flag=0;
                i=0;
                kaiguan=false;
            }else if (e.getSource()==b5) {
                System.out.println("=");
                button_test = b5;
                tf1.setText(tf1.getText()+button_test.getText()+" ");

                flag2=flag/(Math.pow(10,i));
                flag=0;
                kaiguan=false;
                i=0;
                if (diag == '+') {
                    flag3 = flag1 + flag2;

                }
                if (diag == '-') {
                    flag3 = flag1 - flag2;
                }
                if (diag == '*') {
                    flag3 = flag1*flag2;
                }
                if (diag == '/') {
                    flag3 = flag1 / flag2;
                }
                if (diag =='^'){
                    flag3=Math.pow(flag1,flag2);
                }
                String s=""+flag3;
                tf1.setText(tf1.getText()+s+" ");
                flag1=0;flag2=0;flag3=0;flag=0;
                diag='0';
            }else if (e.getSource()==b6) {
                System.out.println(".");
                button_test = b6;
                tf1.setText(tf1.getText()+button_test.getText());
                kaiguan=true;
                i=0;

            }else if (e.getSource()==pingfang){
                System.out.println("^");
                button_test = pingfang;
                tf1.setText(tf1.getText()+button_test.getText());
                diag='^';
                flag1=flag/(Math.pow(10,i));
                flag=0;
                i=0;
                kaiguan=false;

            }else if (e.getSource()==baifen){
                flag=flag/100;
                tf1.setText(tf1.getText()+"%");

            }else if (e.getSource()==zhengfu){
                flag=-flag;
                if (flag<0)
                tf1.setText(tf1.getText()+"(-)");


            }else if (e.getSource()==ac){
                tf1.setText("");
                flag1=0;flag2=0;flag3=0;flag=0;
                diag='0';
                i=0;
                kaiguan=false;

            }else if (e.getSource()==mi3){
                System.out.println("over");
                System.exit(0);
            }else if (e.getSource()==mi1){
                System.out.println("开发人员:");
                new Frame2();
            }else if (e.getSource()==mi2){
                System.out.println("帮助");
                new Frame3();
            }

            }
        }
    }
 
Frame2文件
public static void main(String[] args) {
        new Frame2();

    }
    public Frame2(){
        this.setSize(200,300);
        this.setTitle("开发人员");
        this.setLocation(200,200);
        this.setVisible(true);

        t1=new TextArea();
        t1.setSize(200,300);
        t1.setLocation(0,0);

        t1.setText("MR.HXK");
        this.add(t1);
    }
}

Frame3文件
import javax.swing.*;
import java.awt.*;

/**
 * Created by thinkpad on 2017/3/25.
 */
public class Frame3 extends JFrame {
    private TextArea t1;
    public static void main(String[] args) {
        new Frame3();

    }
    public Frame3(){
        this.setSize(200,300);
        this.setTitle("帮助");
        this.setLocation(200,200);
        this.setVisible(true);

        t1=new TextArea();
        t1.setSize(200,300);
        t1.setLocation(0,0);

        t1.setText("本产品是一个基于双精度编写的计算器\n+/-实现数值的正负转换\n");
        this.add(t1);
    }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值