ZBLOG

import java.awt.*; // 引入awt包中的所有类 import java.awt.event.AdjustmentEvent; // 引入awt.event包中的AdjustmentEvent类 import java.awt.event.AdjustmentListener; // 引入awt.event包中的AdjustmentListener类 public class E23 { // 定义E23类     Frame f = new Frame("调

由于没有具体要求,我们可以采用简单的GUI界面来实现计算器。以下是一个简单的实现方式:

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

import javax.swing.*;

public class Calculator {

private JFrame frame;
private JTextField textField;
private JButton buttonAdd, buttonSubtract, buttonMultiply, buttonDivide, buttonEqual, buttonClear;
private int num1 = 0, num2 = 0; // 存储操作数
private String operator = ""; // 存储运算符

public Calculator() {
    initialize();
}

private void initialize() {
    frame = new JFrame("Calculator");
    frame.setBounds(100, 100, 350, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    textField = new JTextField();
    textField.setEditable(false); // 不允许手动输入内容
    textField.setHorizontalAlignment(SwingConstants.RIGHT); // 右对齐
    textField.setFont(new Font("Arial", Font.PLAIN, 20));
    textField.setBounds(10, 10, 315, 50);
    frame.getContentPane().add(textField);
    textField.setColumns(10);

    buttonAdd = new JButton("+");
    buttonAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            handleOperator("+");
        }
    });
    buttonAdd.setFont(new Font("Arial", Font.PLAIN, 20));
    buttonAdd.setBounds(10, 70, 70, 50);
    frame.getContentPane().add(buttonAdd);

    buttonSubtract = new JButton("-");
    buttonSubtract.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            handleOperator("-");
        }
    });
    buttonSubtract.setFont(new Font("Arial", Font.PLAIN, 20));
    buttonSubtract.setBounds(90, 70, 70, 50);
    frame.getContentPane().add(buttonSubtract);

    buttonMultiply = new JButton("*");
    buttonMultiply.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            handleOperator("*");
        }
    });
    buttonMultiply.setFont(new Font("Arial", Font.PLAIN, 20));
    buttonMultiply.setBounds(170, 70, 70, 50);
    frame.getContentPane().add(buttonMultiply);

    buttonDivide = new JButton("/");
    buttonDivide.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            handleOperator("/");
        }
    });
    buttonDivide.setFont(new Font("Arial", Font.PLAIN, 20));
    buttonDivide.setBounds(250, 70, 75, 50);
    frame.getContentPane().add(buttonDivide);

    buttonEqual = new JButton("=");
    buttonEqual.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            calculate();
        }
    });
    buttonEqual.setFont(new Font("Arial", Font.PLAIN, 20));
    buttonEqual.setBounds(10, 140, 150, 50);
    frame.getContentPane().add(buttonEqual);

    buttonClear = new JButton("C");
    buttonClear.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            clear();
        }
});
buttonClear.setFont(new Font("Arial", Font.PLAIN,20));buttonClear.setBounds(170,
,140);frame.getContentPane().add(buttonClear);}

// 处理运算符
private void handleOperator(String op) {

        if (operator.equals(“”)) { // 如果当前没有存储运算符,则将当前操作数存储为num1,并清空文本框             num1 = Integer.parseInt(textField.getText());             textField.setText(“”);         } else { // 如果已经存储了运算符,则先进行计算再将结果存储为num1             num2 = Integer.parseInt(textField.getText());             calculate();         }         operator = op; // 存储当前的运算符     }

    // 计算结果并显示在文本框中     private void calculate() {         if (!operator.equals(“”) && !textField.getText().equals(“”)) { // 如果已经存储了运算符并且文本框中有内容             int result = 0;             num2 = Integer.parseInt(textField.getText());             switch (operator) { // 根据当前运算符进行相应的计算                 case “+”:                     result = num1 + num2;                     break;                 case “-”:                     result = num1 - num2;                     break;                 case “*”:                     result = num1 * num2;

                break;
            case "/":
                if(num2==0){ // 防止除数为零的情况出现
                    textField.setText("Error");
                    return;
                }
                result=num1/num2;
                break; 
        }
        textField.setText(Integer.toString(result)); // 将计算结果转化为字符串并显示在文本框中
        operator=""; // 清空当前存储的运算符
    }
}

// 清空操作数和文本框中的内容
private void clear() {
    num1 = 0;
    num2 = 0;
    operator = "";
    textField.setText("");
}

public static void main(String[] args) {
    Calculator window = new Calculator();
    window.frame.setVisible(true);
}

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=959

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?