Java实现计算器--大学生作业

项目结构

效果

示例代码

jf

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Jf extends JFrame {
    private JButton but0=new JButton("0");
    private JButton but1=new JButton("1");
    private JButton but2=new JButton("2");
    private JButton but3=new JButton("3");
    private JButton but4=new JButton("4");
    private JButton but5=new JButton("5");
    private JButton but6=new JButton("6");
    private JButton but7=new JButton("7");
    private JButton but8=new JButton("8");
    private JButton but9=new JButton("9");
    private JButton add=new JButton("+");//加
    private JButton subtract=new JButton("-");//减
    private JButton multiply=new JButton("*");//乘
    private JButton except=new JButton("/");//除
    private JButton amount=new JButton("=");//等于
    private JButton ce=new JButton("ce");//清除
    public static TextField text=new TextField(12);

    private JPanel panel1=new JPanel();
    private JPanel panel2=new JPanel();

    private action ac=new action();

    public Jf(){
        super();
        //JFrame jFrame = new JFrame();
        //jFrame.setSize(300,400);
        //panel1.setSize(300,100);
        panel1.setBackground(Color.green);
        panel2.setBackground(Color.red);
        panel2.setLayout(new GridLayout(4,4));

        panel1.add(text,BorderLayout.NORTH);
        panel2.add(but7);
        panel2.add(but8);
        panel2.add(but9);
        panel2.add(add);
        panel2.add(but4);
        panel2.add(but5);
        panel2.add(but6);
        panel2.add(subtract);
        panel2.add(but1);
        panel2.add(but2);
        panel2.add(but3);
        panel2.add(multiply);
        panel2.add(but0);
        panel2.add(amount);
        panel2.add(ce);
        panel2.add(except);
        this.add(panel1,BorderLayout.NORTH);
        this.add(panel2,BorderLayout.CENTER);
        this.pack();
        this.setVisible(true);
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        but0.addActionListener(ac);
        but1.addActionListener(ac);
        but2.addActionListener(ac);
        but3.addActionListener(ac);
        but4.addActionListener(ac);
        but5.addActionListener(ac);
        but6.addActionListener(ac);
        but7.addActionListener(ac);
        but8.addActionListener(ac);
        but9.addActionListener(ac);
        add.addActionListener(ac);
        subtract.addActionListener(ac);
        multiply.addActionListener(ac);
        except.addActionListener(ac);
        amount.addActionListener(ac);
        ce.addActionListener(ac);


    }
}

action

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

public  class action implements ActionListener {
    private String tmp="";
    static int num1;
    static int num2;
    public int result;//结果
    static int L;//状态


    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        JButton button = (JButton) source;
        String text = button.getText();

        if (text.compareTo("0")>=0){
            if (text.equals("=")){
                num2=Integer.parseInt(tmp);
                switch (L) {
                    case 1 -> {
                        System.out.println(num1 + num2);
                        Jf.text.setText(String.valueOf(num1 + num2));
                        tmp=String.valueOf(num1 + num2);
                    }
                    case 2 -> {
                        System.out.println(num1 - num2);
                        Jf.text.setText(String.valueOf(num1 - num2));
                        tmp=String.valueOf(num1 - num2);
                    }
                    case 3 -> {
                        System.out.println(num1 * num2);
                        Jf.text.setText(String.valueOf(num1 * num2));
                        tmp=String.valueOf(num1 * num2);
                    }
                    case 4 -> {
                        System.out.println(num1 / num2);
                        Jf.text.setText(String.valueOf(num1 / num2));
                        tmp=String.valueOf(num1 / num2);
                    }
                }


            }else {
                tmp+=text;
            }

            if (text.equals("ce")){
                num1=0;
                num2=0;
                tmp="";
                result=0;
                System.out.println("ce成功");
                Jf.text.setText("");
            }
        }

        if (text.equals("+")){
            num1=Integer.parseInt(tmp);
            tmp="";
            L=1;
        } else if (text.equals("-")) {
            num1=Integer.parseInt(tmp);
            tmp="";
            L=2;
        } else if (text.equals("*")) {
            num1=Integer.parseInt(tmp);
            tmp="";
            L=3;
        } else if (text.equals("/")) {
            num1=Integer.parseInt(tmp);
            tmp="";
            L=4;
        }
        System.out.println(tmp);
        Jf.text.setText(tmp);




    }

}

Main

public class Main {
    public static void main(String[] args) {
        new Jf();
    }
}

textAction

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

public class textAction implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        TextField source =(TextField) e.getSource();
        //source.setText("成功");


    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值