java編寫簡單計(jì)算器_第1頁
java編寫簡單計(jì)算器_第2頁
java編寫簡單計(jì)算器_第3頁
java編寫簡單計(jì)算器_第4頁
java編寫簡單計(jì)算器_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 今天閑著沒事,用java寫了一個簡單計(jì)算器,能實(shí)現(xiàn)簡單的數(shù)據(jù)計(jì)算。語言:java開發(fā)環(huán)境:eclipse(因?yàn)槭前醋约旱南敕▽懙?,所以有些不盡人意的地方請諒解,希望對初學(xué)java者有些許幫助,有不好理解的地方,我盡量注釋,有不理解的可以在百度HI我) 事先一定要安裝好JDK,可以在下載,配置好環(huán)境變量,再安裝好eclipse,也可以在網(wǎng)上下載到,具體自己去找;然后打開eclipse建立一個工程,取名隨便,我這里取名Calculator;然后在建立好的工程里面新建兩個包,報(bào)名也自己取,盡量易懂,容易讓人理解;我這里建立了兩個包,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;/引用控制器對象 /*因?yàn)檎{(diào)用了控制器里面的方法,所以要對控制器的對象進(jìn)行賦值,否則運(yù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;/*實(shí)現(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)部類實(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包建立一個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ù)按運(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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論