亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java實現的計算器功能示例【基于swing組件】

2024-07-13 10:15:08
字體:
來源:轉載
供稿:網友

本文實例講述了java實現的計算器功能。分享給大家供大家參考,具體如下:

package awtDemo;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;@SuppressWarnings("serial")public class Calculator extends JFrame implements ActionListener {    private final String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6",            "*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };    private final String[] COMMAND = { "Backspace", "CE", "C" };    private JButton keys[] = new JButton[KEYS.length];    private JButton commands[] = new JButton[COMMAND.length];    private JTextField resultText = new JTextField("0");    private boolean firstDigit = true;    private double resultNum = 0.0;    private String operator = "=";    private boolean operateValidFlag = true;    public Calculator() {        init();        this.setBackground(Color.LIGHT_GRAY);        this.setTitle("www.49028c.com - 計算器");        this.setLocation(500, 300);        this.setResizable(false);        this.pack();    }    private void init() {        resultText.setHorizontalAlignment(JTextField.RIGHT);        resultText.setEditable(false);        resultText.setBackground(Color.white);        JPanel calckeysPanel = new JPanel();        calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3));        for (int i = 0; i < KEYS.length; i++) {            keys[i] = new JButton(KEYS[i]);            calckeysPanel.add(keys[i]);            keys[i].setForeground(Color.blue);        }        keys[3].setForeground(Color.red);        keys[8].setForeground(Color.red);        keys[13].setForeground(Color.red);        keys[18].setForeground(Color.red);        keys[19].setForeground(Color.red);        JPanel commandsPanel = new JPanel();        commandsPanel.setLayout(new GridLayout(1, 3, 3, 3));        for (int i = 0; i < COMMAND.length; i++) {            commands[i] = new JButton(COMMAND[i]);            commandsPanel.add(commands[i]);            commands[i].setForeground(Color.red);        }        JPanel panel1 = new JPanel();        panel1.setLayout(new BorderLayout(3, 3));        panel1.add("North", commandsPanel);        panel1.add("West", calckeysPanel);        JPanel top = new JPanel();        top.setLayout(new BorderLayout());        top.add("Center", resultText);        getContentPane().setLayout(new BorderLayout(3, 5));        getContentPane().add("North", top);        getContentPane().add("Center", panel1);        for (int i = 0; i < KEYS.length; i++) {            keys[i].addActionListener(this);        }        for (int i = 0; i < COMMAND.length; i++) {            commands[i].addActionListener(this);        }    }    public void actionPerformed(ActionEvent e) {        String label = e.getActionCommand();        if (label.equals(COMMAND[0])) {            handleBackspace();        } else if (label.equals(COMMAND[1])) {            resultText.setText("0");        } else if (label.equals(COMMAND[2])) {            handleC();        } else if ("0123456789.".indexOf(label) >= 0) {            handleNumber(label);        } else {            handleOperator(label);        }    }    private void handleBackspace() {        String text = resultText.getText();        int i = text.length();        if (i > 0) {            text = text.substring(0, i - 1);            if (text.length() == 0) {                resultText.setText("0");                firstDigit = true;                operator = "=";            } else {                resultText.setText(text);            }        }    }    private void handleNumber(String key) {        if (firstDigit) {            resultText.setText(key);        } else if ((key.equals(".")) && (resultText.getText().indexOf(".") < 0)) {            resultText.setText(resultText.getText() + ".");        } else if (!key.equals(".")) {            resultText.setText(resultText.getText() + key);        }        firstDigit = false;    }    private void handleC() {        resultText.setText("0");        firstDigit = true;        operator = "=";    }    private void handleOperator(String key) {        if (operator.equals("/")) {            if (getNumberFromText() == 0.0) {                operateValidFlag = false;                resultText.setText("除數不能為零");            } else {                resultNum /= getNumberFromText();            }        } else if (operator.equals("1/x")) {            if (resultNum == 0.0) {                operateValidFlag = false;                resultText.setText("零沒有倒數");            } else {                resultNum = 1 / resultNum;            }        } else if (operator.equals("+")) {            resultNum += getNumberFromText();        } else if (operator.equals("-")) {            resultNum -= getNumberFromText();        } else if (operator.equals("*")) {            resultNum *= getNumberFromText();        } else if (operator.equals("sqrt")) {            resultNum = Math.sqrt(resultNum);        } else if (operator.equals("%")) {            resultNum = resultNum / 100;        } else if (operator.equals("+/-")) {            resultNum = resultNum * (-1);        } else if (operator.equals("=")) {            resultNum = getNumberFromText();        }        if (operateValidFlag) {            long t1;            double t2;            t1 = (long) resultNum;            t2 = resultNum - t1;            if (t2 == 0) {                resultText.setText(String.valueOf(t1));            } else {                resultText.setText(String.valueOf(resultNum));            }        }        operator = key;        firstDigit = true;        operateValidFlag = true;    }    private double getNumberFromText() {        double result = 0;        try {            result = Double.valueOf(resultText.getText()).doubleValue();        } catch (NumberFormatException e) {        }        return result;    }    public static void main(String args[]) {        Calculator calculator1 = new Calculator();        calculator1.setVisible(true);        calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }}

運行效果:

java,計算器,swing組件

 

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合精品一区二区| 欧美性受xxxx白人性爽| 欧美一级淫片丝袜脚交| 久热国产精品视频| 亚洲综合在线中文字幕| 91最新国产视频| 成人国产精品久久久| 97国产精品视频人人做人人爱| 欧美裸体男粗大视频在线观看| 国产欧亚日韩视频| 26uuu另类亚洲欧美日本一| 成人久久精品视频| 2019中文字幕全在线观看| 亚洲aa中文字幕| 久久综合久久八八| 久久久久久尹人网香蕉| 97视频在线观看网址| 国产精品香蕉在线观看| 日产精品99久久久久久| 亚洲性猛交xxxxwww| 欧美xxxx综合视频| 欧美日韩午夜激情| 91精品国产91久久久久久不卡| 国产精品人人做人人爽| 91免费看片网站| 97视频在线观看成人| 一个人看的www久久| 欧美激情免费看| 亚洲精品第一国产综合精品| 国内精品国产三级国产在线专| 欧美在线一区二区视频| 色综合影院在线| 日韩国产高清视频在线| 日韩中文字幕国产精品| 美女少妇精品视频| 中文字幕日韩在线视频| 亚洲天堂第一页| 国产精品久久久久久亚洲调教| 欧美精品在线免费观看| 国产精品情侣自拍| 亚洲国产小视频在线观看| 日韩成人小视频| 亚洲男人天堂古典| 国内精品久久久久久影视8| 成人疯狂猛交xxx| 色香阁99久久精品久久久| 欧美在线视频观看免费网站| 91亚洲一区精品| 在线亚洲国产精品网| 国产精品久久av| 国产精品人成电影在线观看| 国产a∨精品一区二区三区不卡| 日韩精品在线视频美女| 亚洲天堂男人天堂女人天堂| 亚洲欧美国产一区二区三区| 色妞一区二区三区| 国产有码一区二区| 2018国产精品视频| 亚洲激情在线观看视频免费| 国产91精品久久久久久| 欧洲成人在线视频| 日韩欧美一区视频| 久久久综合av| 国产精品99久久久久久久久久久久| 精品国产91乱高清在线观看| 中文字幕精品在线| 亚洲欧美精品中文字幕在线| 日韩在线播放一区| www欧美xxxx| 亚洲电影免费观看高清完整版| 中文字幕亚洲欧美日韩2019| 亚洲视频精品在线| 欧美性猛交xxxx偷拍洗澡| 国产成人精品av在线| 色久欧美在线视频观看| 久久在线精品视频| 国产女人精品视频| 日韩精品中文字幕有码专区| 成人免费淫片视频软件| 亚洲女人天堂色在线7777| 欧美激情一二三| 国产欧美亚洲视频| 97视频在线观看免费高清完整版在线观看| 国产精品久久久久久久久免费| 在线看日韩av| 欧美日韩国产一区二区| 亚洲护士老师的毛茸茸最新章节| 亚洲黄色成人网| 欧美中文在线观看| 中文字幕欧美亚洲| 亚洲第一偷拍网| 亚洲自拍小视频免费观看| 中文字幕欧美日韩在线| 色爱精品视频一区| 国产精品欧美激情在线播放| 成人免费高清完整版在线观看| 日韩av电影在线免费播放| 日本成熟性欧美| 国产91在线高潮白浆在线观看| 久久精品国产一区二区电影| 国产精品女人久久久久久| 亚洲天堂av在线播放| 国产原创欧美精品| 日韩欧美成人精品| 一本色道久久88亚洲综合88| 久久夜色撩人精品| 91精品91久久久久久| 国产成人精品免高潮费视频| 亚洲精品视频网上网址在线观看| 国产欧美va欧美va香蕉在| 国产香蕉一区二区三区在线视频| 88xx成人精品| 91亚洲精品久久久久久久久久久久| 国产精品扒开腿爽爽爽视频| 国产精品欧美风情| 亚洲第一视频网| 亚洲女人天堂成人av在线| 欧美黄色片免费观看| 国产精品久久久| 日韩精品在线免费播放| 亚洲国产精品免费| 91影院在线免费观看视频| 欧美激情va永久在线播放| 欧美性资源免费| 日韩精品福利网站| 精品国产欧美一区二区五十路| 91久久在线播放| 国产欧美一区二区三区视频| 日韩中文字幕网| 成人免费黄色网| 国内精品久久久久影院优| 国产精品久久久一区| 91亚洲精品一区| 亚洲国产成人91精品| 45www国产精品网站| 国色天香2019中文字幕在线观看| 欧美国产日韩一区二区在线观看| 福利二区91精品bt7086| 国产精品黄色av| 久久精品免费电影| 欧美高清视频免费观看| 亚洲影院色无极综合| 亚洲一区二区在线| 北条麻妃在线一区二区| 26uuu国产精品视频| 欧美高清视频一区二区| 日韩欧美国产黄色| 日韩欧美亚洲国产一区| 国产精品久久久久久影视| 亚洲第一福利视频| 亚洲第一天堂无码专区| 一区二区成人精品| 日韩av影院在线观看| 45www国产精品网站| 亚洲欧美日韩成人| 日韩极品精品视频免费观看| 日本一区二区三区四区视频| 久久久久九九九九| 黑人巨大精品欧美一区二区免费| 日韩在线视频观看正片免费网站| 77777亚洲午夜久久多人| 欧美在线影院在线视频| 色综合久综合久久综合久鬼88| 亚洲欧美日韩图片|