中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java代碼實現計算器

發布時間:2022-06-06 13:37:26 來源:億速云 閱讀:213 作者:iii 欄目:開發技術

這篇“如何使用java代碼實現計算器”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何使用java代碼實現計算器”文章吧。

運行環境:win10 Eclipse IDE for Java Developers - 2020-06

下面是計算器的視圖:

如何使用java代碼實現計算器

如何使用java代碼實現計算器

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

import javax.swing.*;

/*
 * 計算器
 */
public class CaculatorTest implements ActionListener {
    // 初始框架搭建
    JFrame frame = new JFrame("計算器");
    JTextField area = new JTextField("0");
    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();
    JButton[] buttons = new JButton[20];
    String[] buttonsText = { "sqrt", "退格", "C", "/", "7", "8", "9", "*", "4", "5", "6", "-", "1", "2", "3", "+", "0",
            ".", "+/-", "=" };
    boolean point = false; // 用于判斷是否輸入多位小數點
    boolean key = true; // 做完運算("=")后繼續輸入數字
    String sign = " "; // 用于判斷和記錄運算符號
    double temp = 0; // 多次連續運算時,值的寄存處

    public CaculatorTest() {
        initMenu();
        initText();
        initExtend();
        initFrame();
        initBorderLayout();
    }

    // 初始化菜單
    private void initMenu() {
        JMenuBar mb = new JMenuBar();
        JMenu m1 = new JMenu("選項");
        JMenu m2 = new JMenu("編輯");
        JMenu m3 = new JMenu("幫助");
        JMenuItem m11 = new JMenuItem("普通型計算器");
        JMenuItem m12 = new JMenuItem("科學型計算器");
        m1.add(m11);
        m1.add(m12);
        m11.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                boolean flag = false;
                panel2.setVisible(flag);
                frame.pack();
            }
        });
        m12.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                boolean flag = true;
                panel2.setVisible(flag);
                frame.pack();
            }
        });
        mb.add(m1);
        mb.add(m2);
        mb.add(m3);
        frame.setJMenuBar(mb);
    }

    // 初始化輸出文本域
    private void initText() {
        area.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        area.setSize(400, 100);
        area.setHorizontalAlignment(JTextField.RIGHT); // 向右顯示
    }

    // 初始化拓展功能
    private void initExtend() {
        panel2.setLayout(new GridLayout(1,4,1,1));
        JButton b1 = new JButton("sin");
        JButton b2 = new JButton("cos");
        JButton b3 = new JButton("exp");
        JButton b4 = new JButton("ln");
        b1.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        b2.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        b3.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        b4.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        b1.setSize(100, 100);
        b1.addActionListener(this);
        b2.setSize(100, 100);
        b2.addActionListener(this);
        b3.setSize(100, 100);
        b3.addActionListener(this);
        b4.setSize(100, 100);
        b4.addActionListener(this);
        panel2.add(b1);
        panel2.add(b2);
        panel2.add(b3);
        panel2.add(b4);
    }

    // 初始化計算器基本界面
    private void initFrame() {
        panel1.setLayout(new GridLayout(5, 4, 1, 1));
        for (int i = 0; i < buttonsText.length; i++) {
            JButton button = new JButton(buttonsText[i]);
            button.setSize(100, 100);
            button.setFont(new Font("TimesRoman", Font.PLAIN, 20));
            button.addActionListener(this);
            panel1.add(button);
        }
    }

    // 初始化計算器總基本界面
    private void initBorderLayout() {
        frame.setLayout(new BorderLayout());
        frame.add(panel1, BorderLayout.SOUTH); // 插入組件
        frame.add(area, BorderLayout.NORTH);
        frame.add(panel2, BorderLayout.CENTER);
        frame.setLocation(700, 400);
        frame.setSize(400, 700);
        frame.setVisible(true); // 設置可見
        panel2.setVisible(false);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 可以關閉
        frame.pack();
    }

    public static void main(String[] args) {
        new CaculatorTest();
    }

    @Override
    // 事件監聽
    public void actionPerformed(ActionEvent e) {
        String str = e.getActionCommand();
        String str2 = area.getText();
        if (str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7"
                || str == "8" || str == "9") {
            if (key == false) {
                area.setText(str2 + str);
            } else {
                area.setText(str);
                key = false;
            }
        } else if (str == "C") {
            area.setText("0");
            sign = " ";
            key = true;
        } else if (str == ".") {
            if (point == false) {
                area.setText(str2 + str);
                point = true;
            } else {
                area.setText("double poits!press C to update!");
                point = false;
            }
        } else if (str == "+/-") {
            double num = Double.valueOf(str2);
            num = -num;
            area.setText(String.valueOf(num));
        } else if (str == "退格") {
            if (str2.length() == 0) {
                area.setText("can't be deleted!please press C!");
            } else {
                str2 = str2.substring(0, str2.length() - 1);
                area.setText(str2);
            }
        } else if (str == "sqrt") {
            area.setText("");
            sign = "s";
        } else if (str == "sin") {
            area.setText("");
            sign = "sin";
        } else if (str == "cos") {
            area.setText("");
            sign = "cos";
        } else if (str == "exp") {
            area.setText("");
            sign = "exp";
        } else if (str == "ln") {
            area.setText("");
            sign = "ln";
        } else {
            if (str == "+") {
                if (sign == " ") {
                    sign = "+";
                    temp = Double.valueOf(str2);
                    area.setText("");
                } else if (sign == "-") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = temp - Double.valueOf(str2);
                        sign = "+";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "+") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = temp + Double.valueOf(str2);
                        sign = "+";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "*") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = temp * Double.valueOf(str2);
                        sign = "+";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "/") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else if (Double.valueOf(str2) == 0) {
                        area.setText("除數不能為0哦!按 C");
                    } else {
                        temp = temp / Double.valueOf(str2);
                        area.setText("");
                        sign = "+";
                        key = true;
                    }
                } else if (sign == "s") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = Math.sqrt(Double.valueOf(str2));
                        area.setText("");
                        sign = "+";
                    }
                } else if (sign == "sin") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = Math.sin(Double.valueOf(str2));
                        area.setText("");
                        sign = "+";
                    }
                } else if (sign == "cos") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = Math.cos(Double.valueOf(str2));
                        area.setText("");
                        sign = "+";
                    }
                } else if (sign == "exp") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = Math.exp(Double.valueOf(str2));
                        area.setText("");
                        sign = "+";
                    }
                } else if (sign == "ln") {
                    if (str2.length() == 0) {
                        sign = "+";
                    } else {
                        temp = Math.log(Double.valueOf(str2));
                        area.setText("");
                        sign = "+";
                    }
                }
            } else if (str == "-") {
                if (sign == " ") {
                    sign = "-";
                    temp = Double.valueOf(str2);
                    area.setText("");
                } else if (sign == "-") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = temp - Double.valueOf(str2);
                        sign = "-";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "+") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = temp + Double.valueOf(str2);
                        sign = "-";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "*") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = temp * Double.valueOf(str2);
                        sign = "-";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "/") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else if (Double.valueOf(str2) == 0) {
                        area.setText("除數不能為0哦!按 C");
                    } else {
                        temp = temp / Double.valueOf(str2);
                        area.setText("");
                        sign = "-";
                        key = true;
                    }
                } else if (sign == "s") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = Math.sqrt(Double.valueOf(str2));
                        area.setText("");
                        sign = "-";
                    }
                } else if (sign == "sin") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = Math.sin(Double.valueOf(str2));
                        area.setText("");
                        sign = "-";
                    }
                } else if (sign == "cos") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = Math.cos(Double.valueOf(str2));
                        area.setText("");
                        sign = "-";
                    }
                } else if (sign == "exp") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = Math.exp(Double.valueOf(str2));
                        area.setText("");
                        sign = "-";
                    }
                } else if (sign == "ln") {
                    if (str2.length() == 0) {
                        sign = "-";
                    } else {
                        temp = Math.log(Double.valueOf(str2));
                        area.setText("");
                        sign = "-";
                    }
                }
            } else if (str == "*") {
                if (sign == " ") {
                    sign = "*";
                    temp = Double.valueOf(str2);
                    area.setText("");
                } else if (sign == "-") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = temp - Double.valueOf(str2);
                        sign = "*";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "+") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = temp + Double.valueOf(str2);
                        sign = "*";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "*") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = temp * Double.valueOf(str2);
                        sign = "*";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "/") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else if (Double.valueOf(str2) == 0) {
                        area.setText("除數不能為0哦!按 C");
                    } else {
                        temp = temp / Double.valueOf(str2);
                        area.setText("");
                        sign = "*";
                        key = true;
                    }
                } else if (sign == "s") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = Math.sqrt(Double.valueOf(str2));
                        area.setText("");
                        sign = "*";
                    }
                } else if (sign == "sin") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = Math.sin(Double.valueOf(str2));
                        area.setText("");
                        sign = "*";
                    }
                } else if (sign == "cos") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = Math.cos(Double.valueOf(str2));
                        area.setText("");
                        sign = "*";
                    }
                } else if (sign == "exp") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = Math.exp(Double.valueOf(str2));
                        area.setText("");
                        sign = "*";
                    }
                } else if (sign == "ln") {
                    if (str2.length() == 0) {
                        sign = "*";
                    } else {
                        temp = Math.log(Double.valueOf(str2));
                        area.setText("");
                        sign = "*";
                    }
                }
            } else if (str == "/") {
                if (sign == " ") {
                    sign = "/";
                    temp = Double.valueOf(str2);
                    area.setText("");
                } else if (sign == "-") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = temp - Double.valueOf(str2);
                        sign = "/";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "+") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = temp + Double.valueOf(str2);
                        sign = "/";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "*") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = temp * Double.valueOf(str2);
                        sign = "/";
                        area.setText("");
                        key = true;
                    }
                } else if (sign == "/") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else if (Double.valueOf(str2) == 0) {
                        area.setText("除數不能為0哦!按 C");
                    } else {
                        temp = temp / Double.valueOf(str2);
                        area.setText("");
                        sign = "/";
                        key = true;
                    }
                } else if (sign == "s") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = Math.sqrt(Double.valueOf(str2));
                        area.setText("");
                        sign = "/";
                    }
                } else if (sign == "sin") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = Math.sin(Double.valueOf(str2));
                        area.setText("");
                        sign = "/";
                    }
                } else if (sign == "cos") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = Math.cos(Double.valueOf(str2));
                        area.setText("");
                        sign = "/";
                    }
                } else if (sign == "exp") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = Math.exp(Double.valueOf(str2));
                        area.setText("");
                        sign = "/";
                    }
                } else if (sign == "ln") {
                    if (str2.length() == 0) {
                        sign = "/";
                    } else {
                        temp = Math.log(Double.valueOf(str2));
                        area.setText("");
                        sign = "/";
                    }
                }
            } else if (str == "=") {
                if (sign == "+") {
                    if (str2.length() == 0) {
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    } else {
                        temp = temp + Double.valueOf(str2);
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    }
                } else if (sign == "-") {
                    if (str2.length() == 0) {
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    } else {
                        temp = temp - Double.valueOf(str2);
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    }
                } else if (sign == "*") {
                    if (str2.length() == 0) {
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    } else {
                        temp = temp * Double.valueOf(str2);
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    }
                } else if (sign == "/") {
                    if (Double.valueOf(str2) == 0) {
                        area.setText("除數不能為0哦!按C");
                        sign = " ";
                    } else {
                        temp = temp / Double.valueOf(str2);
                        area.setText(String.valueOf(temp));
                        sign = " ";
                    }
                } else if (sign == " ") {
                    if (str2.length() == 0) {
                        area.setText(String.valueOf(temp));
                    } else {
                        temp = Double.valueOf(str2);
                        area.setText(String.valueOf(temp));
                    }
                } else if (sign == "s") {
                    temp = Math.sqrt(Double.valueOf(str2));
                    area.setText(String.valueOf(temp));
                    sign = " ";
                } else if (sign == "sin") {
                    temp = Math.sin(Double.valueOf(str2));
                    area.setText(String.valueOf(temp));
                    sign = " ";
                } else if (sign == "cos") {
                    temp = Math.cos(Double.valueOf(str2));
                    area.setText(String.valueOf(temp));
                    sign = " ";
                } else if (sign == "exp") {
                    temp = Math.exp(Double.valueOf(str2));
                    area.setText(String.valueOf(temp));
                    sign = " ";
                } else if (sign == "ln") {
                    temp = Math.log(Double.valueOf(str2));
                    area.setText(String.valueOf(temp));
                    sign = " ";
                }
                key = true;
            }
        }
    }
}

以上就是關于“如何使用java代碼實現計算器”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永济市| 江达县| 涟源市| 三台县| 梅州市| 喀喇沁旗| 额尔古纳市| 苍溪县| 马尔康县| 丰城市| 陕西省| 绿春县| 泰顺县| 大竹县| 晋江市| 沿河| 舟山市| 墨竹工卡县| 百色市| 澎湖县| 兰溪市| 于都县| 岳池县| 合川市| 三亚市| 宁安市| 龙井市| 白水县| 防城港市| 卫辉市| 宁都县| 新巴尔虎右旗| 大厂| 高密市| 潮安县| 偃师市| 潜山县| 乌拉特后旗| 黄大仙区| 咸阳市| 钟祥市|