JAVA項(xiàng)目實(shí)戰(zhàn)(計(jì)算器)_第1頁
JAVA項(xiàng)目實(shí)戰(zhàn)(計(jì)算器)_第2頁
JAVA項(xiàng)目實(shí)戰(zhàn)(計(jì)算器)_第3頁
JAVA項(xiàng)目實(shí)戰(zhàn)(計(jì)算器)_第4頁
JAVA項(xiàng)目實(shí)戰(zhàn)(計(jì)算器)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、JAVA項(xiàng)目實(shí)戰(zhàn) -計(jì)算器一、開發(fā)環(huán)境 Eclipse集成開發(fā)環(huán)境。2、 實(shí)現(xiàn)功能 加、減、乘、除的整數(shù)運(yùn)算。3、 運(yùn)用的知識(shí)點(diǎn)1、 JFrame窗體的使用2、 JButton按鈕的使用3、 JTextFiled輸入文本框的使用4、 Container容器的使用5、 監(jiān)聽事件的使用6、 內(nèi)部類7、 If語句8、 Switch case 語句9、 包10、 包的引用11、 數(shù)據(jù)類型之間的轉(zhuǎn)換(String轉(zhuǎn)Int轉(zhuǎn)Double Double.valueOf(String str),Interger.valueOf(String str))四、重點(diǎn)知識(shí)的講解 常用窗體 窗體作為Swing應(yīng)用程序中

2、組件的承載體,處于非常重要的位置。Swing中常用的窗體包括JFrame和JDialog,本節(jié)將著重講解這兩個(gè)窗體的使用方法。 1、 JFrame窗體 JFrame窗體是一個(gè)容器,它是Swing程序中各個(gè)組件的載體,可以將JFrame看作是承載這些Swing組件的容器。在開發(fā)應(yīng)用程序時(shí)可以通過繼承java.swing.IFrame類創(chuàng)建一個(gè)窗體,在這個(gè)窗體中添加組件,同時(shí)為組件設(shè)置事件。由于該窗體繼承了JFrame類,所以它擁有“最大化”、“最小化”和關(guān)閉等按鈕。下面將詳細(xì)講解JFrame窗體在Java應(yīng)用程序中的使用方法。JFrame在程序中的語法格式如下:JFramejf=newJFram

3、e(title):Containercontainer=jfgetContentPane0;參數(shù)含義如下: jf:JFrame類的對(duì)象 container:Container類的對(duì)象,可以使用JFrame對(duì)象調(diào)用getContentPane()方法獲取。讀者大致應(yīng)該有這樣一個(gè)概念,Swing組件的窗體通常與組件和容器相關(guān),所以在JFrame對(duì)象創(chuàng)建完成后,需要調(diào)用getContentPane()方法將窗體轉(zhuǎn)換為容器,然后在容器中添加組件或設(shè)置布局管理器。通常,這個(gè)容器用來包含和顯示組件。如果需要將組件添加至容器,可以使用來自Container類的add()方法進(jìn)行設(shè)置。例如:container

4、.add(newJButton(按鈕”); /Button按鈕組件 在容器添加組件后,也可以使用Container類的remove()方法將這些組件從容器中刪除。例如containerremove(newJButton(按鈕”);下面的實(shí)例中實(shí)現(xiàn)了JFrame對(duì)象創(chuàng)建一個(gè)窗體,并在其中添加一個(gè)組件?!纠吭陧?xiàng)目中創(chuàng)建Examplel類,該類繼承JFrame類成為窗體類,在該類中創(chuàng)建標(biāo)簽組件,并添加到窗體界面中。import java.awt.Color;import java.awt.Container;import javax.swing.JFrame;import javax.swing.

5、JLabel;import javax.swing.SwingConstants;import javax.swing.WindowConstants;public class Example1 extends JFrame /定義一個(gè)類繼承JFrame類public Example1(String titile) /定義一個(gè)構(gòu)造方法,構(gòu)造一個(gè)窗體。JFrame jf = new JFrame(titile);/實(shí)例化一個(gè)JFrame對(duì)象Container container = jf.getContentPane();/獲取一個(gè)容器JLabel jl = new JLabel(這是一個(gè)JFr

6、ame窗體);/實(shí)例化一個(gè)JLabel對(duì)象/使標(biāo)簽上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl); /將標(biāo)簽添加到容器中container.setBackground(Color.WHITE);/設(shè)置容器的背景顏色jf.setVisible(true);/設(shè)置窗體可視jf.setSize(400, 400);/設(shè)置窗體大小/設(shè)置窗體關(guān)閉方式j(luò)f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);public static void ma

7、in(String args) /在主方法中構(gòu)造一個(gè)窗體new Example1(創(chuàng)建一個(gè)JFrame窗體);運(yùn)行本實(shí)例程序,結(jié)果如圖所示。 在例中,Exatplel類繼承了JFrame類,在Example1(String titile)方法中實(shí)例化JFrmne對(duì)象。JFrame類的常用構(gòu)造方法包括以下兩種形式 public JFrame()。 public JFrame(String title). JFrame類中的兩種構(gòu)造方法分別為無參的構(gòu)造方法與有參的構(gòu)造方法,第1種形式的構(gòu)造方法可以創(chuàng)建一個(gè)初始不可見、沒有標(biāo)題的新窗體;第2種形式的構(gòu)造方法在實(shí)例化該JFrame對(duì)象時(shí)可以創(chuàng)建一個(gè)不可

8、見但具有標(biāo)題的窗體??梢允褂肑Frme對(duì)像調(diào)用show()方法使窗體可見,但是該方法早已被新版JDK所棄用,通常使用setVisible(true)方法使窗體可見。 同時(shí)可以使用setSize(int x,int y)方法設(shè)置窗體大小,其中x與y變量分別代表窗體的寬與高。 創(chuàng)建窗體后,需要給予窗體一個(gè)關(guān)閉方式,可以調(diào)用setDefaultCloseOperation()方法關(guān)閉窗體。Java為窗體關(guān)閉提供了多種方式,常用的有以下4種 1、DO_NOTHING_ON_CLOSE。 2、DISPOSE_ON_CLOSE。 3、HIDE_ON_CLOSE。 4、EXTT_ON_CLOSE。第1種窗體

9、退出方式代表什么都不做就將窗體關(guān)閉;第2種退出方式則代表任何注冊(cè)監(jiān)聽程序?qū)ο蠛髸?huì)自動(dòng)隱藏并釋放窗體;第3種方式表示隱藏窗口的默認(rèn)窗口關(guān)閉;第4種退出方式表示退出應(yīng)用程序默認(rèn)窗口關(guān)閉。 2、JDialog窗體 JDialog窗體是Swing組件中的對(duì)話框,它繼承了AWT組件java.awtDialog類。 JDialog窗體的功能是從一個(gè)窗體中彈出另一個(gè)窗體,就像是在使用IE瀏覽器時(shí)彈出的確定對(duì)話框一樣。JDialog窗體實(shí)質(zhì)上就是另一種類型的窗體,它與JFrame窗體類似,在使用時(shí)也需要調(diào)用getContentPane()方法將窗體轉(zhuǎn)換為容器,然后在容器中設(shè)置窗體的特性。 在應(yīng)用程序中創(chuàng)建JD

10、ialog窗體需要實(shí)例化JDialog類,通常使用以下幾個(gè)JDialog類的構(gòu)造方法。 public JDialog():創(chuàng)建一個(gè)沒有標(biāo)題和父窗體的對(duì)話框。 public JDialog(Frame f): 創(chuàng)建一個(gè)指定父窗體的對(duì)話框,但該窗體沒有標(biāo)題。 public JDialog(Frame f,boolean model):創(chuàng)建一個(gè)指定類型的對(duì)話框,并指定父窗體,但該窗體沒有指定標(biāo)題。 public JDialog(Frame f,String title):創(chuàng)建一個(gè)指定標(biāo)題和父窗體的對(duì)話框。 public JDialog(Frame f String titleboolean mode

11、l):創(chuàng)建一個(gè)指定標(biāo)題、窗體和模式的對(duì)話框。下面來看一個(gè)實(shí)例,該實(shí)例主要實(shí)現(xiàn)單擊JFrme窗體中的按鈕后,彈出一個(gè)對(duì)話框窗體?!纠吭陧?xiàng)目中創(chuàng)建MyJDialog類,該類繼承JDialog窗體,并在窗口中添加按鈕,當(dāng)用戶點(diǎn)擊該按鈕后,將彈出一個(gè)對(duì)話框窗體。本實(shí)例代碼如下:import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.

12、swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;public class MyFrame extends JFramepublic MyFrame()Container container = getContentPane();/創(chuàng)建一個(gè)容器container.setLayout(null);JLabel jl = new JLabel(這是一個(gè)JFrame窗體);/在窗體中設(shè)置標(biāo)簽/使標(biāo)簽上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER)

13、;container.add(jl);JButton bl = new JButton(彈出對(duì)話框);/實(shí)例化一個(gè)按鈕bl.setBounds(10, 10, 100, 21);container.add(bl); /將按鈕添加到容器中setSize(400,400); /設(shè)置窗體的大小bl.addActionListener(new ActionListener()/為按鈕添加鼠標(biāo)點(diǎn)擊事件 Overridepublic void actionPerformed(ActionEvent e) /使MyDialog窗體可見new MyDialog(MyFrame.this).setVisible

14、(true););public static void main(String args) new MyFrame().setVisible(true);class MyDialog extends JDialogpublic MyDialog(MyFrame frame) /實(shí)例化一個(gè)JDialog對(duì)象,指定對(duì)話框的父窗體、窗體標(biāo)題和類型super(frame ,第一個(gè)Dialog窗體,true);Container container = getContentPane();/創(chuàng)建一個(gè)容器container.add(new JLabel(這是一個(gè)對(duì)話框);/在容器中添加標(biāo)簽setBounds

15、(120,120,100,100);/設(shè)置對(duì)話框的大小運(yùn)行本實(shí)例,結(jié)果如圖所示。 在本實(shí)例中,為了使對(duì)話框在父窗體彈出,定義了一個(gè)JFrame窗體,首先在該窗體中定義一個(gè)按鈕,然后為此按鈕添加一個(gè)鼠標(biāo)單擊監(jiān)聽事件,這里使用newMyJDialog().setVisible(true)語句使對(duì)話框窗體可見,這樣就實(shí)現(xiàn)了用戶單擊該按鈕后彈出對(duì)話框的功能。 在MyJDialog類中,由于它繼承了JDialog類,所以可以在構(gòu)造方法中使用super關(guān)鍵字調(diào)用JDialog構(gòu)造方法。在這里使用了 publicJDialog(Framef,String title,booleanmodel)這種形式的構(gòu)造

16、方法,相應(yīng)地設(shè)置了自定義的JFrame窗體以及對(duì)話框的標(biāo)題和窗體類型。本實(shí)例代碼中可以看到,JDialog窗體與JFrame窗體形式基本相同,甚至在設(shè)置窗體的特性時(shí)調(diào)用的方法名稱都基本相同,如設(shè)置窗體大小、窗體關(guān)閉狀態(tài)等。 計(jì)算器package com.rakey.ui;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButt

17、on;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.WindowConstants;public class UI private JButton clear;/ 清除按鈕(AC)private JButton backspace;/ 退格鍵private JButton zhengfuhao;/ +/-鍵private JButton chuhao;/ 除號(hào)private JButton b_7;/ 按鍵7private JButton b_8;/ 按鍵8private JButton b

18、_9;/ 按鍵7private JButton b_cheng;/ 乘號(hào)鍵private JButton b_4;/ 按鍵4private JButton b_5;/ 按鍵5private JButton b_6;/ 按鍵6private JButton b_jian;/ 減號(hào)鍵private JButton b_1;/ 按鍵1private JButton b_2;/ 按鍵2private JButton b_3;/ 按鍵3private JButton b_jia;/ 加號(hào)鍵private JButton b_0; / 按鍵0private JButton b_dian;/ 按鍵.priv

19、ate JButton b_deng;/ 按鍵=private JTextField display;public String integer;public UI() / 1:新建一個(gè)JFrame對(duì)象為jfJFrame jf = new JFrame(計(jì)算器);/ 2:設(shè)置布局jf.setLayout(null);/ 3:得到一個(gè)容器containerContainer container = jf.getContentPane();/ 改變?nèi)萜?container)的背景顏色container.setBackground(Color.YELLOW);/ 新建一個(gè)JTextField對(duì)象di

20、splay = new JTextField(0);/ 設(shè)置JTextField在container當(dāng)中的位置和JTextField的寬度,高度display.setBounds(10, 10, 310, 100);/ 設(shè)置字體的大小和字體display.setFont(new Font(楷體, Font.BOLD, 40);/ 設(shè)置字體的顏色display.setForeground(new Color(255, 0, 0);/ 設(shè)置字體的顯示位置(從最右邊開始顯示)display.setHorizontalAlignment(JTextField.RIGHT);/ 把JTextField放

21、到container容器當(dāng)中container.add(display);/ 新建一個(gè)JButton對(duì)象clear = new JButton(AC);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度clear.setBounds(10, 115, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(clear);clear.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象backspace = new JButton();/ 設(shè)置JButton在container當(dāng)中的位置和J

22、Button的寬度,高度backspace.setBounds(90, 115, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(backspace);backspace.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象zhengfuhao = new JButton(+/-);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度zhengfuhao.setBounds(170, 115, 70, 40);/ 把JButton放到container容器當(dāng)中container.ad

23、d(zhengfuhao);zhengfuhao.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象chuhao = new JButton();/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度chuhao.setBounds(250, 115, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(chuhao);chuhao.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_7 = new JButton(7);/ 設(shè)置JButton在

24、container當(dāng)中的位置和JButton的寬度,高度b_7.setBounds(10, 165, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_7);b_7.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_8 = new JButton(8);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_8.setBounds(90, 165, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_8);b_8.addActio

25、nListener(new Click();/ 新建一個(gè)JButton對(duì)象b_9 = new JButton(9);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_9.setBounds(170, 165, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_9);b_9.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_cheng = new JButton();/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_cheng.setBo

26、unds(250, 165, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_cheng);b_cheng.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_4 = new JButton(4);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_4.setBounds(10, 215, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_4);b_4.addActionListener(new Click();/ 新建一個(gè)

27、JButton對(duì)象b_5 = new JButton(5);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_5.setBounds(90, 215, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_5);b_5.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_6 = new JButton(6);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_6.setBounds(170, 215, 70, 40);/ 把JButton放到c

28、ontainer容器當(dāng)中container.add(b_6);b_6.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_jian = new JButton();/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_jian.setBounds(250, 215, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_jian);b_jian.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_1 = new JButton(1);/

29、設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_1.setBounds(10, 265, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_1);b_1.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_2 = new JButton(2);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_2.setBounds(90, 265, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_2);b_

30、2.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_3 = new JButton(3);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_3.setBounds(170, 265, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_3);b_3.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_jia = new JButton();/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_jia

31、.setBounds(250, 265, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_jia);b_jia.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_0 = new JButton(0);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_0.setBounds(10, 315, 150, 40);/ 把JButton放到container容器當(dāng)中container.add(b_0);b_0.addActionListener(new Click();/ 新

32、建一個(gè)JButton對(duì)象b_dian = new JButton(.);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_dian.setBounds(170, 315, 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_dian);b_dian.addActionListener(new Click();/ 新建一個(gè)JButton對(duì)象b_deng = new JButton(=);/ 設(shè)置JButton在container當(dāng)中的位置和JButton的寬度,高度b_deng.setBounds(250, 315,

33、 70, 40);/ 把JButton放到container容器當(dāng)中container.add(b_deng);b_deng.addActionListener(new Click();/ 使該窗體可見(false:不可見,true:可見)jf.setVisible(true);/ 設(shè)置窗體的大小jf.setSize(345, 400);/ 關(guān)閉窗體jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);String shu_1 = 0;/ 保存輸入數(shù)據(jù)String shu_2 = 0;/ 保存輸入數(shù)據(jù)String fuhao =

34、0;/ 存放計(jì)算符號(hào)/* * 類名:Click * 功能:監(jiān)聽各個(gè)按鍵是否按下,處理各個(gè)按鍵 按下的內(nèi)容和相關(guān)的功能 * 實(shí)現(xiàn):ActionListener接口 * 作者:饒凌云 */class Click implements ActionListener Overridepublic void actionPerformed(ActionEvent e) /* 判斷輸入的數(shù)據(jù)是否大于9位,如果大于9位數(shù),就會(huì)顯示 最多輸入9個(gè)字符 */if (display.getText().length() = 9) display.setText( );display.setText(最多輸入9個(gè)字

35、符);return;/* 清除按鈕,如果該按鍵按下后,顯示框的內(nèi)容就會(huì)清零 */if (e.getSource() = clear) display.setText(0); else if (e.getSource() = b_1) if (display.getText().equals(0) display.setText(1);return;display.setText(display.getText() + 1); else if (e.getSource() = b_2) / display.setText(2);if (display.getText().equals(0) di

36、splay.setText(2);return;display.setText(display.getText() + 2); else if (e.getSource() = b_3) if (display.getText().equals(0) display.setText(3);return;display.setText(display.getText() + 3); else if (e.getSource() = b_4) if (display.getText().equals(4) display.setText(1);return;display.setText(display.getText() + 4); else if (e.getSource() = b_5) if (display.getText().equals(5) display.setText(1);return;display.setText(display.getText() + 5); else if (e.getSource() = b_6) if (display.getText().equals(6) display.setText(1);return;display.setText(display.getText() + 6); else if (e.getS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論