久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2728|回復: 1
打印 上一主題 下一主題
收起左側

用JAVA程序編寫簡單計算器

[復制鏈接]
跳轉到指定樓層
樓主
ID:361500 發表于 2018-12-31 11:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
package jisuanji;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.accessibility.AccessibleAction;
import javax.swing.JButton;
import javax.swing.JTextField;
public class jisuanjicalc extends JFrame{
        JButton equalJB,divJB,button0JB,button1JB,button2JB,button3JB,button4JB,button5JB,button6JB,
        button7JB,button8JB,button9JB,addJB,subJB,mulJB,dotJB,CEJB,EXITJB,bsJB;//窗口組件(按鈕)
        JButton numJB[]=new JButton[10];
        JPanel panelJP,panel2JP,panel3JP;//定義面板
        JLabel equalJL,errorJL;//創造窗口需要顯示組件
        JTextField num1JT;
        //GUI開發+的一般步驟:
        //1.創建窗口類,繼承自JFrame
        //2.定義相關組件的引用名(包括面板的引用名)
        //3.在構造器方法中創建組件對象并且與引用名關聯。
        //4.創建面板,將將組件添加到面板(中間容器)
        //5.將面板,添加到窗口(頂層容器)
        //6.設置窗口大小,可見性,標題欄……  (詳細,仔細參考JDK文檔 )
        //7.創建內部類(組件的事件響應代碼)
        //8.添加相應組件的事件監聽

        double a=0,b=0,c;
        boolean dotflag=false;
        String operator;
        public jisuanjicalc() {
                errorJL=new JLabel("");
                num1JT=new JTextField(26);//數字的作用是調用構造文本框寬度
                num1JT.setPreferredSize(new Dimension(50, 50));//數字的作用是調用構造文本框高度
                //num1JT.setEditable(false);//不可改寫窗口
                //divJB.addActionListener(new exitAction() );
                /*button0JB=new JButton("0");//添加按妞
                button1JB=new JButton("1");
                button2JB=new JButton("2");
                button3JB=new JButton("3");
                button4JB=new JButton("4");
                button5JB=new JButton("5");
                button6JB=new JButton("6");
                button7JB=new JButton("7");
                button8JB=new JButton("8");
                button9JB=new JButton("9");*/
                for(int i=0;i<numJB.length;i++) {
                        numJB[i]=new JButton(i+"");
                }
                addJB=new JButton("+");
                subJB=new JButton("-");
                mulJB=new JButton("*");
                divJB=new JButton("÷");
                dotJB=new JButton(".");
                equalJB=new JButton("=");
                CEJB=new JButton("CE");
                EXITJB=new JButton("EXIT");
                bsJB=new JButton("←―");
                dotJB.addActionListener(new dotAction());
                equalJB.addActionListener(new equalAction() );
                addJB.addActionListener(new operatorAction() );//使按鈕有效(監聽)
                subJB.addActionListener(new operatorAction() );
                mulJB.addActionListener(new operatorAction() );
                divJB.addActionListener(new operatorAction() );
                CEJB.addActionListener(new CEAction() );
                EXITJB.addActionListener(new EXITAction() );
                bsJB.addActionListener(new bsAction() );
               
                for(int i=0;i<numJB.length;i++) {
                        numJB[i].addActionListener(new numAction());
                }
                /*button0JB.addActionListener(new numAction() );
                button1JB.addActionListener(new numAction() );
                button2JB.addActionListener(new numAction() );
                button3JB.addActionListener(new numAction() );
                button4JB.addActionListener(new numAction() );
                button5JB.addActionListener(new numAction() );
                button6JB.addActionListener(new numAction() );
                button7JB.addActionListener(new numAction() );
                button8JB.addActionListener(new numAction() );
                button9JB.addActionListener(new numAction() );*/
                panelJP=new JPanel();//添加面板
                panel2JP=new JPanel();
                panel3JP=new JPanel();//讓相應組件在相應的面板
                panelJP.add(num1JT);
                for(int i=1;i<=3;i++) {
                        panel2JP.add(numJB[i]);
                }
                panel2JP.add(addJB);
                for(int i=4;i<=6;i++) {
                        panel2JP.add(numJB[i]);
                }
                panel2JP.add(subJB);
                for(int i=7;i<=9;i++) {
                        panel2JP.add(numJB[i]);
                }
                panel2JP.add(mulJB);
                panel2JP.add(numJB[0]);
                /*panel2JP.add(button1JB);
                panel2JP.add(button2JB);
                panel2JP.add(button3JB);
                panel2JP.add(button4JB);
                panel2JP.add(button5JB);
                panel2JP.add(button6JB);
                panel2JP.add(button7JB);
                panel2JP.add(button8JB);
                panel2JP.add(button9JB);
                panel2JP.add(button0JB);*/
                panel2JP.add(dotJB);
                panel2JP.add(divJB);
                panel2JP.add(equalJB);
                panel2JP.setLayout(new GridLayout(5,8,8,8));
                panel3JP.add(errorJL);
                panel2JP.add(CEJB);
                panel2JP.add(EXITJB);
                panel2JP.add(bsJB);
                //this.add(CEJB,BorderLayout.CENTER);
                //this.add(panelJP,BorderLayout.NORTH);//邊界布局的北邊.布局方式:流式布局(FloatLayout)、邊界布局(BorderLayout)、網格布局(GirLayout)
                this.add(panelJP,BorderLayout.NORTH);//為不同的面板布局,顯示不同面板的內容
                this.add(panel2JP,BorderLayout.CENTER);
                this.add(panel3JP,BorderLayout.SOUTH);
                this.setTitle("計算器");
                this.setSize(300,450);//設置窗口大小
                this.setResizable(false);
                this.setVisible(true);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
//        class calcAction implements ActionListener{
//                public void actionPerformed(ActionEvent m) {
//                                errorJL.setText("數字格式錯誤");
//                                num1JT.setText("");
//                        c=a+b;
//                        c=(double)(Math.round(c*100))/100;//設置保留數字位數
//                        num1JT.setText(c+"");
//                }
//        }
        //創建事件類部          //實現監聽器接口
        class numAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {
                        JButton tempJB=(JButton)e.getSource();//強轉為按妞,接下來與tempJB的getText
                        num1JT.setText(num1JT.getText()+tempJB.getText());//讓文本框獲取按妞的內容
                        }               
                }
        class equalAction implements ActionListener{
                public void actionPerformed(ActionEvent q) {
                        try {
                                        b=Double.parseDouble(num1JT.getText());
                                        switch(operator) {
                                                case "+":c=a+b;break;
                                                case "-":c=a-b;break;
                                                case "*":c=a*b;break;
                                                case "÷":c=a/b;break;
                                        }
                        c=(double)(Math.round(c*100))/100;
                        num1JT.setText(c+"");
                        }catch(NumberFormatException m) {
                                 JOptionPane.showMessageDialog(null, "數字格式錯誤");
                                 num1JT.setText("");
                                 }
                }
        }
        class dotAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {
                        if(dotflag==false)
                                num1JT.setText(num1JT.getText()+e.getActionCommand());
                        dotflag=true;
                        }               
                }
        class operatorAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {
                        try {
                        a=Double.parseDouble(num1JT.getText());
                        }catch(NumberFormatException m){
                        num1JT.setText("");//此前應將operator定義為全局變量
                        }
                        num1JT.setText("");
                        operator=e.getActionCommand();//獲取組件標簽、文本
                        dotflag=false;
        }
        }
        class CEAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {       
                        num1JT.setText("");
                        operator=e.getActionCommand();//獲取組件標簽、文本
                        dotflag=false;
                }
                }
        class bsAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {
                        String str=num1JT.getText();
                        num1JT.setText(str.substring(0,str.length()-1));//取數字長度減一位的內容
                       
                }
        }
        class EXITAction implements ActionListener{
                public void actionPerformed(ActionEvent e) {
                System.exit(0);
                }
        }
        public  static void main (String[] args) {
                new jisuanjicalc();       
        }
       
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:467774 發表于 2019-1-14 11:18 | 只看該作者
好資料,51有你更精彩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩电影免费在线观看中文字幕 | 欧美黄页| 国产欧美一区二区三区久久人妖 | 人人爱干 | 久久久久亚洲精品中文字幕 | 日韩精品成人免费观看视频 | 激情小说综合网 | 久久99国产精品 | 一区二区三区视频在线 | 成人久久一区 | 亚洲精品国产偷自在线观看 | 日韩成人免费av | 天天干天天插天天 | 国产激情一区二区三区 | av在线播放网站 | 91视频精选 | 国产精品久久久久久久一区探花 | 亚洲精品国产区 | 久久久久久成人 | 国产在线不卡 | 综合一区二区三区 | av天天看 | 欧美三区 | 精品小视频 | 狠狠艹 | 成人在线看片 | 国产日韩一区二区三区 | 日本在线视频中文字幕 | 国产精品久久久久久婷婷天堂 | 久久精品国产精品青草 | 红桃成人在线 | 国产精品成人一区二区 | a在线视频 | 亚洲美女一区 | 国产精品夜夜夜一区二区三区尤 | 中文字幕视频在线看 | 国产精品乱码一二三区的特点 | 99国内精品久久久久久久 | 精品久久精品 | 手机av在线 | 国产91九色 |