




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 今天閑著沒事,用java寫了一個簡單計算器,能實現(xiàn)簡單的數(shù)據(jù)計算。語言:java開發(fā)環(huán)境:eclipse(因為是按自己的想法寫的,所以有些不盡人意的地方請諒解,希望對初學(xué)java者有些許幫助,有不好理解的地方,我盡量注釋,有不理解的可以在百度HI我) 事先一定要安裝好JDK,可以在下載,配置好環(huán)境變量,再安裝好eclipse,也可以在網(wǎng)上下載到,具體自己去找;然后打開eclipse建立一個工程,取名隨便,我這里取名Calculator;然后在建立好的工程里面新建兩個包,報名也自己取,盡量易懂,容易讓人理解;我這里建立了兩個包,Client和UI,等下在Client里面放的是主函數(shù),UI里面放
2、的是界面文件和控制器;好了下面開始寫代碼;一、 先寫界面代碼: 在UI包里面新建一個Class文件,取名自己想,這里我寫的是CalculatorFramepackage ui;import java.awt.Color;import java.awt.Font;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
3、.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.border.TitledBorder;public class CalculatorFrame extends JFrame private static final long serialVersionUID = 1L;public String opt;public String str;private JTextArea show;private Cli
4、entContext clientContext;/引用控制器對象 /*因為調(diào)用了控制器里面的方法,所以要對控制器的對象進(jìn)行賦值,否則運行會出現(xiàn)空指針異常*/public void setClientContext(ClientContext clientContext) this.clientContext = clientContext;public CalculatorFrame() init();private void init() setTitle(" Simple Calculator");setBounds(533, 184, 300, 400);setCo
5、ntentPane(creatContentPane();private JPanel creatContentPane() JPanel p = new JPanel(new GridLayout(4, 1);/* 在面板里面添加4個面板*/p.add(showPane();/顯示屏p.add(btnPane1();/下面三個都是按鈕p.add(btnPane2();p.add(btnPane3();return p;/*實現(xiàn)各個面板*/private JScrollPane showPane() JScrollPane p = new JScrollPane();p.setBorder(n
6、ew TitledBorder("Display:");show = new JTextArea();show.setFont(new Font("",Font.PLAIN,25);show.setForeground(Color.RED);show.setLineWrap(true);show.setEditable(false);p.getViewport().add(show);return p;private JPanel btnPane1() JPanel p = new JPanel(new GridLayout(2, 4);JButton
7、add = new JButton("+");JButton jian = new JButton("-");JButton cheng = new JButton("*");JButton chu = new JButton("/");JButton one = new JButton("1");JButton two = new JButton("2");JButton three = new JButton("3");JButton anser =
8、new JButton("=");p.add(add);p.add(jian);p.add(cheng);p.add(chu);p.add(one);p.add(two);p.add(three);p.add(anser);/*用內(nèi)部類實現(xiàn)按鈕監(jiān)視器,后面的都是這樣*/one.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) String number = show.getText() + String.valueOf(1);/按了數(shù)字“1
9、”按/鈕后,操作顯示屏,既更新一下顯示屏clientContext.setNumber(number);/調(diào)用控制器里面的方法);two.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) String number = show.getText() + String.valueOf(2);clientContext.setNumber(number););three.addActionListener(new ActionListener() Override
10、public void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show.getText() + String.valueOf(3);clientContext.setNumber(number););add.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) opt = "+"clientContext.setOpt(op
11、t););jian.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubopt = "-"clientContext.setOpt(opt););cheng.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated me
12、thod stubopt = "*"clientContext.setOpt(opt););chu.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubopt = "/"clientContext.setOpt(opt););anser.addActionListener(new ActionListener() Overridepublic void actio
13、nPerformed(ActionEvent arg0) str = "="clientContext.setAnswer(str););return p;private JPanel btnPane2() JPanel p = new JPanel(new GridLayout(2, 4);JButton four = new JButton("4");JButton five = new JButton("5");JButton six = new JButton("6");JButton pi = new J
14、Button("PI");JButton seven = new JButton("7");JButton eight = new JButton("8");JButton nine = new JButton("9");JButton com = new JButton(".");p.add(four);p.add(five);p.add(six);p.add(pi);p.add(seven);p.add(eight);p.add(nine);p.add(com);four.addAction
15、Listener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show.getText() + String.valueOf(4);clientContext.setNumber(number););five.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO
16、 Auto-generated method stubString number = show.getText() + String.valueOf(5);clientContext.setNumber(number););six.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show.getText() + String.valueOf(6);clientCont
17、ext.setNumber(number););seven.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show.getText() + String.valueOf(7);clientContext.setNumber(number););eight.addActionListener(new ActionListener() Overridepublic vo
18、id actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show.getText() + String.valueOf(8);clientContext.setNumber(number););nine.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString number = show
19、.getText() + String.valueOf(9);clientContext.setNumber(number););com.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubsetShow(show.getText() + "."););pi.addActionListener(new ActionListener() Overridepublic void acti
20、onPerformed(ActionEvent e) / TODO Auto-generated method stubsetShow(String.valueOf(Math.PI););return p;private JPanel btnPane3() JPanel p = new JPanel(new GridLayout(2, 4);JButton zero = new JButton("0");JButton sqrt = new JButton("");JButton guiling = new JButton("C");
21、final JButton help = new JButton("Help");p.add(zero);p.add(sqrt);p.add(guiling);p.add(help);help.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubJOptionPane.showMessageDialog(help, "注意:假如第二運算數(shù)為空的話,這里將默認(rèn)為0.0!&qu
22、ot;););guiling.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubclientContext.setMc(););zero.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString num
23、ber = show.getText() + String.valueOf(0);clientContext.setNumber(number););sqrt.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubsetShow("" + Math.sqrt(getShow(););return p;/*更新計算器的顯示屏*/public void setShow(String str
24、) show.setText(str);/*獲取當(dāng)前顯示屏里面的數(shù)據(jù)*/public Double getShow() String str = show.getText();if (str.equals("") str = "0.0"return Double.valueOf(str);/*獲取當(dāng)前選擇的運算符:比如加或減或乘或除*/public String getOpt() return this.opt;二、 寫控制器代碼在UI包建立一個Class,我取名ClientContextpackage ui;import java.util.Array
25、List;import java.util.List;import javax.swing.JOptionPane;public class ClientContext private CalculatorFrame calculatorFrame;private Double first = 0.0;private Double next = 0.0;public void setCalculatorFrame(CalculatorFrame calculatorFrame) this.calculatorFrame = calculatorFrame;double sum = 0;publ
26、ic void setNumber(String str) calculatorFrame.setShow(str);public void setOpt(String opt) first = calculatorFrame.getShow();calculatorFrame.setShow("");public void setAnswer(String str) /按了“=”后,對數(shù)據(jù)按運算符進(jìn)行計算next = calculatorFrame.getShow();/ calculatorFrame.setShow(str);/switch(str)/if (calc
27、ulatorFrame.getOpt() = "+") double answer = first + next;calculatorFrame.setShow(String.valueOf(answer); else if (calculatorFrame.getOpt() = "-") double answer = first - next;calculatorFrame.setShow(String.valueOf(answer); else if (calculatorFrame.getOpt() = "*") double
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)信息技術(shù)教研組信息素養(yǎng)培養(yǎng)計劃
- 五年級上冊音樂興趣激發(fā)計劃
- 2025年公務(wù)員考試時事政治??寄M試題附參考答案詳解【鞏固】
- 社會服務(wù)勞動力機械設(shè)備和材料投入計劃
- 2025春嶺南版小學(xué)美術(shù)課程計劃
- 小學(xué)信息化宣傳與政務(wù)工作計劃
- 高新技術(shù)合同認(rèn)定登記(備案)流程他
- 餐飲服務(wù)業(yè)職工試用合同范本規(guī)范
- 高二體育班校園賽事計劃
- 汽車展位租賃及產(chǎn)品展示合作合同
- 水 泵 安 裝 記 錄
- 大健康產(chǎn)業(yè)商業(yè)計劃書
- GB∕T 7528-2019 橡膠和塑料軟管及軟管組合件 術(shù)語
- 常州市機械行業(yè)安管考試題庫
- 門店日常衛(wèi)生檢查表
- FANUC機器人R-2000iA機械單元維護(hù)手冊
- 槽邊排風(fēng)罩的設(shè)計計算
- 中國當(dāng)代文學(xué)專題-國家開放大學(xué)2022年1月期末考試復(fù)習(xí)資料-漢語言本科復(fù)習(xí)資料
- 機動車維修經(jīng)營備案表
- 超星爾雅學(xué)習(xí)通《國際金融》2020章節(jié)測試含答案(上)
- 危險性較大的分部分項工程清單
評論
0/150
提交評論