编写一个简单的计算器

CalcWindow.java
package dao;
import javax.swing.*;
import java.awt.Font;
 
@SuppressWarnings("serial")
public class CalcWindow extends JFrame {
	public Module contentPane = new Module();
    public static void main(String[] args) {
        new CalcWindow();
    }
    public CalcWindow() {
    	setFont(new Font("Dialog", Font.PLAIN, 20));
    	setTitle("随机出题&简单的计算!");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 531, 611);
        setVisible(true);
        getContentPane().add(contentPane);
        contentPane.setLayout(null);
    }
}
Number.java 
package dao;
public class Number {
	 public int n1;
	 public int n2;
	 public float n3;
	 public float n4;
	 public String sign;
    public Number() {
    }
    public int getN1() {
        return n1;
    } 
    public void setN1(int n1) {
        this.n1 = n1;
    }
    public int getN2() {
        return n2;
    }
    public void setN2(int n2) {
        this.n2 = n2;
    }   
	public float getN3() {
		return n3;
	}
	public float getN4() {
		return n4;
	}
	public void setN3(float n3) {
		this.n3=n3;
	}
	public void setN4(float n4) {
		this.n4=n4;		
	}
    public String getSign() {
        return sign;
    }    
	public void setSign(String sign) {
        this.sign = sign;
    }
}
Integer.java
package dao;
public class Integer {
   Number number = new Number();
     static int result ;
 
    public Integer() {
        generateResult();
    }
    public int generateResult() {
        number.setN1( (int) ((Math.random() * 50) + 1) );
        number.setN2((int) ((Math.random() * 50) + 1));
        int temp = (int) ((Math.random() * 4));
        if (temp == 0) {
            number.setSign("+");
            result = number.getN1()  +  number.getN2();
        }
        if (temp == 1) {
            number.setSign("-");
            result = number.getN1()  -  number.getN2();
        }
        if (temp == 2) {
            number.setSign("*");
            result = number.getN1()  *  number.getN2();
        }
        if (temp == 3) {
            number.setSign("/");
            result = number.getN1()  /  number.getN2();
        }
        return result;
 
    } 
    public Number getNumber(){
        return number;
    }
     public static boolean IsEqual(String inputNumber){
        return inputNumber.equals(result+"");
    }
    public static int getResult(){
        return result;
    }
}
Decimals.java
package dao;
public class Decimals {
   Number number = new Number();
     static float result ;
    public Decimals() {
        generateResult();
    }
     public float generateResult() {
        number.setN3( (float) ((Math.random() * 2) + 1) );
        number.setN4((float) ((Math.random() * 2) + 1));

        int temp = (int) ((Math.random() * 4));
 
        if (temp == 0) {
            number.setSign("+");
            result = number.getN3()  +  number.getN4();
        }
        if (temp == 1) {
            number.setSign("-");
            result = number.getN3()  -  number.getN4();
        }
        if (temp == 2) {
            number.setSign("*");
            result = number.getN3()  *  number.getN4();
        }
        if (temp == 3) {
            number.setSign("/");
            result = number.getN3()  /  number.getN4();
        }
        return result;
    }
    public Number getNumber(){
        return number;
    }
    public static boolean IsEqual(String inputNumber){
        return inputNumber.equals(result+"");
    }
 
    public static float getResult(){
        return result;
    }
}
Module.java
package dao;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
 
@SuppressWarnings("serial")
public class Module extends JPanel {
	public JTextField txfInput1;
    public JTextField txfInput2;
    public Integer integer = new Integer();
    public Decimals decimals=new Decimals();
    public Number number = integer.getNumber();
    public String a = " ";
    private JLabel lblMessage1;
    private JLabel lblMessage2;
    private JLabel lblMessage3;
    private JLabel lblMessage5;
    private JLabel lblMessage6;
    private JLabel lblMessage7;
    private JLabel lblMessage8;
    private JButton btnCalculate1;
    private JButton btnCalculate2;
    private JButton btnCalculate_1;
    private JButton btnCalculate_2;
    public Module() {
        setBorder(new EmptyBorder(5, 5, 5, 5));
        setLayout(null);
        inputBox1();
        inputBox2();
   
        genN1AndN2Sign(number.getN1(), number.getN2(), number.getSign());
        genN3AndN4Sign(number.getN3(), number.getN4(), number.getSign());
 
        JLabel lblMessage4 = new JLabel("=");
        lblMessage4.setBounds(170, 240, 100, 20);
        add(lblMessage4);
        genLabel();
        
        JLabel lblMessage9 = new JLabel("=");
        lblMessage9.setBounds(170, 308, 100, 20);
        add(lblMessage9);
        genLabel();

        btnCalculate1 = new JButton("整数提交答案");
        btnCalculate1.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent e) {       		  
        	}
        });
        btnCalculate1.setFont(new Font("宋体", Font.PLAIN, 20));
        btnCalculate1.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                String text1 = txfInput1.getText();
                boolean b = Integer.IsEqual(text1);
                if (b) {
                    a = "正确";
                    genLabel();
                }
                if (!b) {
                    a = "错误,正确答案是" + Integer.getResult();
                    genLabel();
                }
                repaint();
            }
        });
        btnCalculate1.setBounds(39, 384, 162, 39);
        add(btnCalculate1);
        
        btnCalculate2 = new JButton("小数提交答案");
        btnCalculate2.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent e) {       		  
        	}
        });
        btnCalculate2.setFont(new Font("宋体", Font.PLAIN, 20));
        btnCalculate2.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                String text2 = txfInput2.getText();
                boolean c = Decimals.IsEqual(text2);
                if (c) {
                    a = "正确";
                    genLabel();
                }
                if (!c) {
                    a = "错误,正确答案是" + Decimals.getResult();
                    genLabel();
                }
                repaint();
            }
        });
        btnCalculate2.setBounds(286, 384, 162, 39);
        add(btnCalculate2);
        
        btnCalculate_1 = new JButton("下一题(整数部分)");
        btnCalculate_1.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent e) {
        	}
        });
        btnCalculate_1.setFont(new Font("宋体", Font.PLAIN, 17));
        btnCalculate_1.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                integer.generateResult();
                Number number = integer.getNumber();
                genN1AndN2Sign(number.getN1(), number.getN2(), number.getSign());
                inputBox1();
                a = "";
                genLabel();
                repaint();
            }
        });
        btnCalculate_1.setBounds(25, 454, 192, 39);
        add(btnCalculate_1);
        
        btnCalculate_2 = new JButton("下一题(小数部分)");
        btnCalculate_2.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent e) {
        	}
        });
        btnCalculate_2.setFont(new Font("宋体", Font.PLAIN, 17));
        btnCalculate_2.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
            	decimals.generateResult();
                Number number = decimals.getNumber();
                genN3AndN4Sign(number.getN3(), number.getN4(), number.getSign());
                inputBox2();
                a = "";
                genLabel();
                repaint();
            }
        });
        btnCalculate_2.setBounds(273, 454, 192, 39);
        add(btnCalculate_2);
        
        JLabel lblNewLabel = new JLabel("New label");
        lblNewLabel.setIcon(new ImageIcon("C:\\Users\\19177\\Desktop\\图怪兽_4bb799f8bbe6a2a6ea588e202b03e4b8_79589.png"));
        lblNewLabel.setBounds(0, 0, 524, 200);
        add(lblNewLabel);
    }
 
    public void genLabel() {
 
        if (!(lblMessage5 == null)) {
            remove(lblMessage5);
        }
 
        lblMessage5 = new JLabel(a);
        lblMessage5.setFont(new Font("微软雅黑",Font.BOLD,20));
        lblMessage5.setBounds(139, 525, 340, 27);
        add(lblMessage5);
    }
 
    public void genN1AndN2Sign(int n1, int n2, String sign) {
        if (!(lblMessage1 == null && lblMessage2 == null && lblMessage3 == null)) {
            remove(lblMessage1);
            remove(lblMessage2);
            remove(lblMessage3);
        }
        lblMessage1 = new JLabel(n1 + "");
        lblMessage1.setFont(new Font("微软雅黑",Font.BOLD,20));
        lblMessage1.setBounds(85,240, 100, 20);
        add(lblMessage1);
        
        lblMessage2 = new JLabel(sign);
        lblMessage2.setFont(new Font("微软雅黑",Font.BOLD,20));
        lblMessage2.setBounds(115, 240, 100, 20);
        add(lblMessage2);
 
        lblMessage3 = new JLabel(n2 + "");
        lblMessage3.setFont(new Font("微软雅黑",Font.BOLD,20));
        lblMessage3.setBounds(140, 240, 100, 20);
        add(lblMessage3);
    }
        public void genN3AndN4Sign(float n3, float n4, String sign) {
            if (!(lblMessage7 == null && lblMessage6 == null && lblMessage8 == null)) {
                remove(lblMessage7);
                remove(lblMessage6);
                remove(lblMessage8);
            }

        lblMessage7 = new JLabel(n3 + "");
        lblMessage7.setFont(new Font("微软雅黑", Font.BOLD, 15));
        lblMessage7.setBounds(85,285, 150, 20);
        add(lblMessage7);
        
        lblMessage6 = new JLabel(sign);
        lblMessage6.setFont(new Font("微软雅黑",Font.BOLD,20));
        lblMessage6.setBounds(85, 302, 150, 20);
        add(lblMessage6);
        
        lblMessage8 = new JLabel(n4 + "");
        lblMessage8.setFont(new Font("微软雅黑", Font.BOLD, 15));
        lblMessage8.setBounds(85,320, 150, 20);
        add(lblMessage8);
        }
 
    public void inputBox1() {
        if (!(txfInput1 == null)) {
            remove(txfInput1);
        }
 
        txfInput1 = new JTextField();
        txfInput1.setBounds(203, 221, 179, 45);
        txfInput1.setFont(new Font("微软雅黑",Font.BOLD,20));
        add(txfInput1);
        txfInput1.setColumns(10);
 
    }
    
    public void inputBox2() {
        if (!(txfInput2 == null)) {
            remove(txfInput2);
        }
 
        txfInput2 = new JTextField();
        txfInput2.setBounds(203, 292, 179, 45);
        txfInput2.setFont(new Font("微软雅黑",Font.BOLD,20));
        add(txfInput2);
        txfInput2.setColumns(10);
    }
}

由于封面的图片如下:

运行结果:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊可可茶+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值