用java实现简单的计算器(基于Calculator)

版权声明:そう何簡単な諦めるわけないだろう。。 https://blog.csdn.net/Inuyasha_1314/article/details/80323635
关于Calculator的实现和安装,请参见大神博客:https://www.cnblogs.com/woider/p/5331391.html
转载请注明出处

我只是在次基础上,借了一下“轮子”。再次感谢大神。

只要是按钮上有的,本计算器都可以支持的哦!
成品截图:

计算器完成截图

这里给出文件分布图:

文件分布图

Java可执行文件链接

https://coding.net/u/pingbing/p/java/attachment/3690283

图片很丑,更多界面美化留给其他实现咯。
下面附上代码

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import Calculator.*;
class Computer extends Frame implements ActionListener {
    private Button button1 = new Button("1");
    private Button button2 = new Button("2");
    private Button button3 = new Button("3");
    private Button button4 = new Button("4");
    private Button button5 = new Button("5");
    private Button button6 = new Button("6");
    private Button button7 = new Button("7");
    private Button button8 = new Button("8");
    private Button button9 = new Button("9");
    private Button button0 = new Button("0");
    private Button button_point = new Button(".");
    private Button button_add = new Button("+");
    private Button button_reduce = new Button("-");
    private Button button_time = new Button("*");
    private Button button_divide = new Button("/");
    private Button button_equal = new Button("=");
    private Button button_quit = new Button("quit");
    private Button button_clean = new Button("clean");
    private Button button_khz = new Button("(");
    private Button button_khy = new Button(")");
    private Button button_e = new Button("e");

    private TextField result = new TextField();
    private TextField inputDisplay = new TextField();

    private Label label = new Label("本计算器支持加减乘除混和以及乘方等运算");

    // reDisplay 存储着需要计算的表达式
    private String reDisplay = "";

    //构造函数
    Computer(){
        super("Computer ");
        Panel textFiled = new Panel();
        textFiled.setLayout(new GridLayout(3,1));
        textFiled.add(label);
        textFiled.add(inputDisplay);
        textFiled.add(result);
        Panel buttons = new Panel();
        buttons.setLayout(new GridLayout(5,4));
        buttons.add(button_khz);
        buttons.add(button_khy);
        buttons.add(button_clean);
        buttons.add(button_divide);
        buttons.add(button7);
        buttons.add(button8);
        buttons.add(button9);
        buttons.add(button_time);
        buttons.add(button4);
        buttons.add(button5);
        buttons.add(button6);
        buttons.add(button_reduce);
        buttons.add(button1);
        buttons.add(button2);
        buttons.add(button3);
        buttons.add(button_add);
        buttons.add(button_e);
        buttons.add(button0);
        buttons.add(button_point);
        buttons.add(button_equal);

        Panel equal = new Panel();
        equal.setLayout(new GridLayout(1,0));
        equal.add(button_quit);

        setLayout(new BorderLayout());
        add("North",textFiled);
        add("Center",buttons);
        add("South",equal);

        // 添加监听
        button1.addActionListener(this);
        button2.addActionListener(this);
        button3.addActionListener(this);
        button4.addActionListener(this);
        button5.addActionListener(this);
        button6.addActionListener(this);
        button7.addActionListener(this);
        button8.addActionListener(this);
        button9.addActionListener(this);
        button0.addActionListener(this);
        button_add.addActionListener(this);
        button_reduce.addActionListener(this);
        button_time.addActionListener(this);
        button_divide.addActionListener(this);
        button_equal.addActionListener(this);
        button_quit.addActionListener(this);
        button_clean.addActionListener(this);
        button_point.addActionListener(this);
        button_khz.addActionListener(this);
        button_khy.addActionListener(this);
        button_e.addActionListener(this);
        result.addActionListener(this);
        inputDisplay.addActionListener(this);

        pack();
        setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getSource() == button1) {
            reDisplay+="1";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button2) {
            reDisplay+="2";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button3) {
            reDisplay+="3";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button4) {
            reDisplay+="4";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button5) {
            reDisplay+="5";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button6) {
            reDisplay+="6";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button7) {
            reDisplay+="7";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button8) {
            reDisplay+="8";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button9) {
            reDisplay+="9";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button0) {
            reDisplay+="0";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_point) {
            reDisplay+=".";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_add) {
            reDisplay+="+";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_reduce) {
            reDisplay+="-";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_time) {
            reDisplay+="*";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_divide) {
            reDisplay+="/";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_equal) {
            reDisplay+="";
             //Calculator.conversion(reDisplay);
             inputDisplay.setText(reDisplay);
             String ex =""+ Calculator.conversion(reDisplay);
             result.setText(ex);
        }else if(e.getSource() == button_clean) {
            reDisplay ="";
            inputDisplay.setText(reDisplay);
            result.setText(reDisplay);
        }else if(e.getSource() == button_quit) {
            System.exit(0);
        }else if(e.getSource() == button_khz) {
            reDisplay += "(";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_khy) {
            reDisplay += ")";
            inputDisplay.setText(reDisplay);
        }else if(e.getSource() == button_e) {
            reDisplay += "e";
            inputDisplay.setText(reDisplay);
        }       
    }
}

//lyy 为主类
public class lyy{
    public static void main(String[] args){
        Computer computer = new Computer();

    }
}

猜你喜欢

转载自blog.csdn.net/Inuyasha_1314/article/details/80323635