IDEA迷你计算机

package com.company;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class MiniJisuanqi extends JFrame {

JPanel jPanelText;

JTextField textField;

JPanel jPanelButton;

JButton jButton1;

JButton jButton2;

JButton jButton3;

JButton jButtonAdd;



JButton jButton4;

JButton jButton5;

JButton jButton6;

JButton jButtonJian;



JButton jButton7;

JButton jButton8;

JButton jButton9;

JButton jButtonMul;



JButton jButton0;

JButton jButtonChu;

JButton jButtonHu;

JButton jButtonEqual;

int sum=0;

public String opString="";

public int opInt = 0;

// 数字键的监听器

public ActionListener buttonListener(final String text){

    return new ActionListener() {

        public void actionPerformed(ActionEvent e) {

            textField.setText(textField.getText()+text);

        }

    };

}

//清除键的监听器

public ActionListener clearButtonListener(){

    return new ActionListener() {

        public void actionPerformed(ActionEvent e) {

            textField.setText("");

        }

    };

}

//计算操作

private void ops(){

    switch (opInt) {

        case 1:

            if (textField.getText() != "") {

                sum += Integer.parseInt(textField.getText());

            }

            else sum +=0;

            textField.setText(sum+"");

            opString="";

            opInt=0;

            break;

        case 2:

            if (textField.getText() != "") {

                sum -= Integer.parseInt(textField.getText());

            }

            else sum -=0;

            textField.setText(sum+"");

            opString="";

            opInt=0;

            break;

        case 3:

            if (textField.getText() != "") {

                sum *= Integer.parseInt(textField.getText());

            }

            else sum *=0;

            textField.setText(sum+"");

            opString="";

            opInt=0;

            break;

        case 4:

            if (textField.getText() != "") {

                sum /= Integer.parseInt(textField.getText())!=0?Integer.parseInt(textField.getText()):1;

            }

            else sum /= 1;

            textField.setText(sum+"");

            opString="";

            opInt=0;

            break;

    }

}

//加减乘除及等于号的监听器

public ActionListener optButtonListener(final String op){

    return new ActionListener() {

        public void actionPerformed(ActionEvent e) {

            if (!op.equals("=")){

                ops();

                opString=op;

                if (op.equals("+")){

                    MiniJisuanqi.this.opInt=1;

                }else if (op.equals("-")){

                    MiniJisuanqi.this.opInt=2;

                }else if (op.equals("*")){

                    MiniJisuanqi.this.opInt=3;

                }else if (op.equals("/")){

                    MiniJisuanqi.this.opInt=4;

                }

                //opInt=0;

                if (textField.getText() != "") {

                    sum = Integer.parseInt(textField.getText());

                    textField.setText("");

                }

                else sum=0;

            }

            else {

                System.out.println("dengyuhao  " + MiniJisuanqi.this.opInt);

                ops();

            }

        }

    };

}

//初始化界面操作

public MiniJisuanqi(){

    jPanelText = new JPanel();

    textField = new JTextField(25);

    textField.setText("");

    textField.setEditable(true);

    jPanelText.add(textField);

    jPanelButton = new JPanel(new GridLayout(4,4,10,10));

    jButton1 = new JButton("1");

    jButton1.addActionListener(buttonListener(jButton1.getText()));

    jButton2 = new JButton("2");

    jButton2.addActionListener(buttonListener(jButton2.getText()));

    jButton3 = new JButton("3");

    jButton3.addActionListener(buttonListener(jButton3.getText()));

    jButtonAdd = new JButton("+");

    jButtonAdd.addActionListener(optButtonListener(jButtonAdd.getText()));



    jButton4 = new JButton("4");

    jButton4.addActionListener(buttonListener(jButton4.getText()));

    jButton5 = new JButton("5");

    jButton5.addActionListener(buttonListener(jButton5.getText()));

    jButton6 = new JButton("6");

    jButton6.addActionListener(buttonListener(jButton6.getText()));

    jButtonJian = new JButton("-");

    jButtonJian.addActionListener(optButtonListener(jButtonJian.getText()));



    jButton7 = new JButton("7");

    jButton7.addActionListener(buttonListener(jButton7.getText()));

    jButton8 = new JButton("8");

    jButton8.addActionListener(buttonListener(jButton8.getText()));

    jButton9 = new JButton("9");

    jButton9.addActionListener(buttonListener(jButton9.getText()));

    jButtonMul = new JButton("*");

    jButtonMul.addActionListener(optButtonListener(jButtonMul.getText()));



    jButton0 = new JButton("0");

    jButton0.addActionListener(buttonListener(jButton0.getText()));

    jButtonChu = new JButton("/");

    jButtonChu.addActionListener(optButtonListener(jButtonChu.getText()));

    jButtonHu = new JButton("清除");

    jButtonHu.addActionListener(clearButtonListener());

    jButtonEqual = new JButton("=");

    jButtonEqual.addActionListener(optButtonListener(jButtonEqual.getText()));

    jPanelButton.add(jButton1);jPanelButton.add(jButton2);jPanelButton.add(jButton3);jPanelButton.add(jButtonAdd);

    jPanelButton.add(jButton4);jPanelButton.add(jButton5);jPanelButton.add(jButton6);jPanelButton.add(jButtonJian);

    jPanelButton.add(jButton7);jPanelButton.add(jButton8);jPanelButton.add(jButton9);jPanelButton.add(jButtonMul);

    jPanelButton.add(jButton0);jPanelButton.add(jButtonEqual);jPanelButton.add(jButtonHu);jPanelButton.add(jButtonChu);

    getContentPane().add("North",jPanelText);

    getContentPane().add("Center",jPanelButton);

}

//主函数

public static void main(String[] args) {

    MiniJisuanqi miniJisuanqi = new MiniJisuanqi();

    miniJisuanqi.setTitle("简单计算器");

    miniJisuanqi.setVisible(true);

    miniJisuanqi.pack();

    miniJisuanqi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    miniJisuanqi.setResizable(false);

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值