




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 今天閑著沒事,用java寫了一個(gè)簡(jiǎn)單計(jì)算器,能實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)計(jì)算。語言:java開發(fā)環(huán)境:eclipse(因?yàn)槭前醋约旱南敕▽懙模杂行┎槐M人意的地方請(qǐng)諒解,希望對(duì)初學(xué)java者有些許幫助,有不好理解的地方,我盡量注釋,有不理解的可以在百度HI我) 事先一定要安裝好JDK,可以在下載,配置好環(huán)境變量,再安裝好eclipse,也可以在網(wǎng)上下載到,具體自己去找;然后打開eclipse建立一個(gè)工程,取名隨便,我這里取名Calculator;然后在建立好的工程里面新建兩個(gè)包,報(bào)名也自己取,盡量易懂,容易讓人理解;我這里建立了兩個(gè)包,Client和UI,等下在Client里面放的是主函數(shù),UI里面放
2、的是界面文件和控制器;好了下面開始寫代碼;一、 先寫界面代碼: 在UI包里面新建一個(gè)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;/引用控制器對(duì)象 /*因?yàn)檎{(diào)用了控制器里面的方法,所以要對(duì)控制器的對(duì)象進(jìn)行賦值,否則運(yùn)行會(huì)出現(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個(gè)面板*/p.add(showPane();/顯示屏p.add(btnPane1();/下面三個(gè)都是按鈕p.add(btnPane2();p.add(btnPane3();return p;/*實(shí)現(xiàn)各個(gè)面板*/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)部類實(shí)現(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, "注意:假如第二運(yùn)算數(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;/*更新計(jì)算器的顯示屏*/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)前選擇的運(yùn)算符:比如加或減或乘或除*/public String getOpt() return this.opt;二、 寫控制器代碼在UI包建立一個(gè)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) /按了“=”后,對(duì)數(shù)據(jù)按運(yùn)算符進(jìn)行計(jì)算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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生涯規(guī)劃與發(fā)展教育考試試卷及答案
- 2025年時(shí)事政治與國(guó)際關(guān)系考試試卷及答案
- 2025年旅游管理師考試試卷及答案
- 2025年量子物理學(xué)考試試卷及答案
- 2025年安全工程師職業(yè)資格考試試題及答案
- 2025年甘肅省中考化學(xué)試題卷(含答案)
- 特殊藥品勾兌管理制度
- 特殊設(shè)備使用管理制度
- 獵頭客戶合同管理制度
- 2025中國(guó)郵政集團(tuán)有限公司黑龍江省分公司招聘筆試模擬試題及參考答案詳解一套
- 上海市閔行區(qū)2023-2024學(xué)年六年級(jí)下學(xué)期期末考試語文試題
- 醫(yī)學(xué)免疫學(xué)(山東聯(lián)盟 濰坊醫(yī)學(xué)院版) 知到智慧樹網(wǎng)課答案
- 2024年陜西西安市碑林區(qū)人力資源和社會(huì)保障局招聘61人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 再回首混聲合唱譜
- 按揭貸款風(fēng)險(xiǎn)揭示及應(yīng)對(duì)措施
- 智能安防監(jiān)控系統(tǒng)升級(jí)實(shí)施方案
- 考后心理健康教育課件
- 《治療痤瘡藥》課件
- 住院精神疾病患者自殺風(fēng)險(xiǎn)護(hù)理(2023版團(tuán)標(biāo))
- 研究污水處理中的微生物群落結(jié)構(gòu)
- 中等職業(yè)學(xué)校教職員工績(jī)效考核實(shí)施方案
評(píng)論
0/150
提交評(píng)論