第8章-Java實(shí)例界面制作_第1頁(yè)
第8章-Java實(shí)例界面制作_第2頁(yè)
第8章-Java實(shí)例界面制作_第3頁(yè)
第8章-Java實(shí)例界面制作_第4頁(yè)
第8章-Java實(shí)例界面制作_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第8章 Java實(shí)例界面制作ggao1.設(shè)計(jì)目標(biāo) 設(shè)計(jì)一個(gè)學(xué)生管理系統(tǒng) 功能設(shè)計(jì) 添加、修改、刪除、查看學(xué)生信息 學(xué)生信息 學(xué)號(hào),姓名,電話,寢室,職務(wù),籍貫等 這一部分留在下一章建設(shè) 界面設(shè)計(jì) 主界面,查詢界面,修改界面,添加界面,刪除界面 界面切換 通過主界面可以切換到任意的其他界面 其他界面可以返回到主界面1.1 主界面1.2 添加界面1.3 修改 暫時(shí)放一放這個(gè)功能1.4 刪除1.5 查詢2 項(xiàng)目設(shè)計(jì)思路 利用Jframe組件創(chuàng)建一個(gè)窗口,作為程序的運(yùn)行窗口 Jframe上放置Jpanel面板組件,作為程序的界面 應(yīng)該有5個(gè)Jpanel,代表5個(gè)界面 Jpanel上放置各種其他組件來實(shí)

2、現(xiàn)每個(gè)界面的功能 Jlabel標(biāo)簽組件用來放提示文字 Jbutton按鈕組件用來放按鈕 JTextField文本框組件用來放輸入數(shù)據(jù)的文本框 Jtable表格組件用來放顯示學(xué)生信息的表格3 創(chuàng)建項(xiàng)目窗口 1. 創(chuàng)建項(xiàng)目 SMS 2. 創(chuàng)建包 Wtu 3. 創(chuàng)建主Java類 包含Main方法 mc(main class) 4. main方法中創(chuàng)建Jframe對(duì)象jsw,標(biāo)題設(shè)置為“學(xué)生管理系統(tǒng)”,坐標(biāo)及大小(200,100,800,600)JFrame jsw=new JFrame(“學(xué)生管理系統(tǒng)”);/生成一個(gè)jframe對(duì)象jsw.setBounds(200,100,800,600);/設(shè)置

3、窗口坐標(biāo)及大小jsw.setVisible(true);/顯示窗口, 隱藏: 設(shè)置參數(shù)為false4 制作主界面 1. 創(chuàng)建主界面Jpanel對(duì)象mjp,并將其添加到j(luò)sw上JPanel mjp=new JPanel();/創(chuàng)建一個(gè)默認(rèn)布局的面板表示主界面mjp.setLayout(null);/設(shè)置mjp不使用布局,以實(shí)現(xiàn)其上組件的自定義布局jsw.getContentPane().add(mjp);/添加mjp到j(luò)sw上 2. 創(chuàng)建一個(gè)Jlabel組件對(duì)象jml,用來顯示“歡迎使用學(xué)生管理系統(tǒng)”,并放置在主界面jmp上JLabel jml= new JLabel(“歡迎使用學(xué)生管理系統(tǒng)”)

4、;/創(chuàng)建jml對(duì)象Jl.setBounds(100, 100, 200, 100);/設(shè)置jml坐標(biāo)及大小mjp.add(jml);/把jml添加到mjp(主界面)上面3. 創(chuàng)建4個(gè)Jbutton組件對(duì)象,用來表示4個(gè)功能按鈕,設(shè)置它們的坐標(biāo)及大小,并將它們添加到mjp上JButton jbtQ=new JButton(查詢);/創(chuàng)建按鈕組件對(duì)象jbtQ.setBounds(100,400, 80, 40);/設(shè)置查詢按鈕坐標(biāo)及大小JButton jbtA=new JButton(添加);/創(chuàng)建按鈕組件對(duì)象jbtA.setBounds(200,400, 80, 40);JButton jbtU

5、=new JButton(修改);/創(chuàng)建按鈕組件對(duì)象jbtU.setBounds(300,400, 80, 40);JButton jbtD=new JButton(刪除);/創(chuàng)建按鈕組件對(duì)象jbtD.setBounds(400,400, 80, 40);jbtQ.add(jml);/把jbtQ(查詢按鈕對(duì)象)添加到mjp(主界面)上jbtA.add(jml);jbtU.add(jml);jbtD.add(jml);注意:觀察老師把多條代碼擺放的位置,而且要理解為什么是那樣?5. Java項(xiàng)目打包 編制好的項(xiàng)目如果想脫離eclipse運(yùn)行 把項(xiàng)目打包成jar包 Jar(Java Archive

6、,Java 歸檔文件),它是將許多文件組合成的一個(gè)壓縮文件 包含main方法的jar包可以直接運(yùn)行 電腦安裝jdk的前提下打包過程 1. 右鍵單擊項(xiàng)目,選export 2. 在彈出的界面選JavaJAR file,然后點(diǎn)擊next 3. 在彈出界面給定jar包位置及文件名,然后點(diǎn)擊next 4. 在彈出的JAR packaging Options面板,不用修改配置,直接點(diǎn)擊next 5. 在彈出的面板,選擇包含Main方法的類,然后點(diǎn)擊finish完成導(dǎo)出運(yùn)行Jar包 1. 鼠標(biāo)直接單擊可運(yùn)行 2. 命令行運(yùn)行 java jar test.jar課堂練習(xí)1 實(shí)現(xiàn)如下的界面,并把項(xiàng)目打包,并創(chuàng)建

7、快捷方式,通過點(diǎn)擊快捷方式直接運(yùn)行程序6 制作其他界面的思路 可行的方法:在包含jsw的main方法中,比如要制作添加界面,再創(chuàng)建一個(gè)jpanel面板表示添加界面,創(chuàng)建文本框組件和按鈕組件,并放置在其上,已完成該面板的界面設(shè)計(jì)。最后,通過把該面板添加到j(luò)sw對(duì)象上,來顯示該面板 缺點(diǎn):程序不好維護(hù);蛻化成結(jié)構(gòu)化設(shè)計(jì) 選擇的方法:創(chuàng)建一個(gè)jpanel子類,界面及功能在該子類中完成7 設(shè)計(jì)JPanel子類 該類是4個(gè)其他界面的抽象,通過該類可以創(chuàng)建4個(gè)不同的Jpanel對(duì)象 該類的界面目標(biāo) 在包含jsw對(duì)象的main方法中使用該類創(chuàng)建對(duì)象時(shí),對(duì)象就具有了完整的界面定義,而無(wú)需再設(shè)置 Ojpanel

8、(other jpanel) 父類為Jpanel 實(shí)現(xiàn)父類的JPanel()構(gòu)造方法 1. 創(chuàng)建OJpanel類,要選擇構(gòu)造函數(shù)一項(xiàng),main方法不用選 2. 修改Ojpanel代碼,讓其繼承JPanel類 3. 修改構(gòu)造函數(shù),讓其執(zhí)行父類的構(gòu)造函數(shù)JPanel() 子類必須實(shí)現(xiàn)父類的一個(gè)構(gòu)造函數(shù)8 在OJpanel中設(shè)計(jì)界面 因?yàn)镺jpanel可以生成4中不同的界面,可以用4個(gè)方法來為不同的界面設(shè)計(jì)放在其上的組件 initQ()表示為添加界面設(shè)計(jì)組件的方法 該方法中要添加6個(gè)標(biāo)簽,6個(gè)文本框,2個(gè)按鈕 并將它們添加到Jpanel上 此時(shí)的jpanel就是ojpanel(它具有jpanel的一

9、切功能) 類中要使用自己,用this 1. 修改Ojpanel構(gòu)造函數(shù) 增加一個(gè)參數(shù)ptype,如果ptype為1則執(zhí)行添加界面的設(shè)計(jì)方法initQ() 并在構(gòu)造方法中設(shè)置當(dāng)前類布局為無(wú) this. setLayout(null); 2.設(shè)計(jì)方法initQ() 創(chuàng)建Jlabel,JtextFiled,Jbutton組件對(duì)象 添加到當(dāng)前面板 比如添加標(biāo)簽對(duì)象jl,則為:this.add(jl),表示把jl對(duì)象添加到由當(dāng)前類產(chǎn)生的對(duì)象上,而當(dāng)前類是一個(gè)從Jpanel對(duì)象派生的類,也就是把jl添加到一個(gè)jpanel面板對(duì)象上int lx=100;int lxoffset=300;int ly=100

10、;int lyoffset=100;int lw=40;int lh=50;JLabel jlxh= new JLabel(學(xué)號(hào)學(xué)號(hào));jlxh.setBounds(lx, ly, lw, lh);JLabel jlxm= new JLabel(姓名姓名);jlxm.setBounds(lx+lxoffset, ly, lw, lh);JLabel jldh= new JLabel(電話電話);jldh.setBounds(lx, ly+lyoffset, lw, lh);JLabel jlqs= new JLabel(寢室寢室);jlqs.setBounds(lx+lxoffset, ly+

11、lyoffset, lw, lh);JLabel jlzw= new JLabel(職務(wù)職務(wù));jlzw.setBounds(lx, ly+lyoffset*2, lw, lh);JLabel jljg= new JLabel(籍貫籍貫);jljg.setBounds(lx+lxoffset, ly+lyoffset*2, lw, lh);int tx=200;int txoffset=300;int ty=115;int tyoffset=100;int tw=120;int th=30;int tlength=20;JTextField jtfxh=new JTextField(tleng

12、th);jtfxh.setBounds(tx, ty, tw, th);JTextField jtfxm=new JTextField(tlength);jtfxm.setBounds(tx+txoffset, ty, tw, th);JTextField jtfdh=new JTextField(tlength);jtfdh.setBounds(tx, ty+tyoffset, tw, th);JTextField jtfqs=new JTextField(tlength);jtfqs.setBounds(tx+txoffset, ty+tyoffset, tw, th);JTextFiel

13、d jtfzw=new JTextField(tlength);jtfzw.setBounds(tx, ty+tyoffset*2, tw, th);JTextField jtfjg=new JTextField(tlength);jtfjg.setBounds(tx+txoffset, ty+tyoffset*2, tw, th);JButton jbtA=new JButton(添加添加);/創(chuàng)建按鈕組件對(duì)象創(chuàng)建按鈕組件對(duì)象jbtA.setBounds(200,400, 80, 40);JButton jbtB=new JButton(返回返回);/創(chuàng)建按鈕組件對(duì)象創(chuàng)建按鈕組件對(duì)象jbtB

14、.setBounds(300,400, 80, 40);this.add(jlxh);this.add(jlxm);this.add(jldh);this.add(jlqs);this.add(jlzw);this.add(jljg);this.add(jtfxh);this.add(jtfxm);this.add(jtfdh);this.add(jtfqs);this.add(jtfzw);this.add(jtfjg);this.add(jbtA);this.add(jbtB); 3. 在包含jsw的main方法中,創(chuàng)建OJpanel的添加界面對(duì)象ajp,并把其添加到j(luò)sw上9 添加按鈕事

15、件 給mjp的添加按鈕設(shè)置事件,實(shí)現(xiàn)切換界面的功能jbtA.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) 這里放切換到添加界面的按鈕); 切換方法(隱藏mjp,添加并顯示ajp) mjp.setVisible(false);/把主界面把主界面mjp設(shè)置為不可見設(shè)置為不可見 jsw.getContentPane().add(ajp);/添加ajp到j(luò)sw上 ajp.setVisible(true);/顯示添加界面顯示添加界面ajp 在事件處理函數(shù)中,對(duì)象要變?yōu)閒inal10 返回按鈕事件 在OJpanel類中給返回按鈕,添加事件jbtB.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) 隱藏誰(shuí)?當(dāng)前面板,可用this代替嗎

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論