




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java圖形用戶界面(GUI)Java面向?qū)ο蟪绦蛟O(shè)計(jì)第6章-圖形用戶界面課件主要內(nèi)容圖形用戶界面開(kāi)發(fā)包:AWT包及Swing包掌握創(chuàng)建GUI程序的基本方法掌握使用布局管理器進(jìn)行界面布局的基本方法掌握Swing包中常用組件的基本用法掌握J(rèn)ava事件處理機(jī)制主要內(nèi)容圖形用戶界面開(kāi)發(fā)包:AWT包及Swing包Java中開(kāi)發(fā)圖形用戶界面的資源界面元素:容器和組件java.awt包java.swing包布局:常用布局管理類:java.awt新增布局管理類:java.swing事件處理:常用事件處理類或接口:java.awt.event新增事件處理類或接口:Java.swing.eventJava中開(kāi)發(fā)圖形用戶界面的資源界面元素:容器和組件JavaGUI組件AWT(AbstractWindowToolkit):早期版本。包為:java.awt其優(yōu)點(diǎn)是:簡(jiǎn)單、系統(tǒng)開(kāi)銷?。坏撬_(kāi)發(fā)出來(lái)的應(yīng)用程序移植性差,而且不如Windows自帶的程序看起來(lái)精美。Swing:Java1.2版本正式加入的新圖形用戶版本。包為:javax.swing優(yōu)點(diǎn)是:不包含任何與平臺(tái)有關(guān)的本地代碼,基于swing的應(yīng)用程序具有很好的可移植性;具有比AWT更為豐富的組件;組件的形式也可以多樣化;使用MVC體系結(jié)構(gòu)進(jìn)行設(shè)計(jì);JavaGUI組件AWT(AbstractWindowAWT組件和swing組件的關(guān)系幾乎所有的AWT組件都有對(duì)應(yīng)的swing組件,swing組件名前多一個(gè)字母“J”。Swing對(duì)AWT組件進(jìn)行了修改,且增加了新的組件。本課程我們使用swing組件開(kāi)發(fā)圖形用戶界面。AWT組件和swing組件的關(guān)系幾乎所有的AWT組件都有對(duì)應(yīng)使用swing開(kāi)發(fā)GUI所需的資源開(kāi)發(fā)圖形用戶界面程序通常需導(dǎo)入:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;使用swing開(kāi)發(fā)GUI所需的資源開(kāi)發(fā)圖形用戶界面程序通常需Gui程序框架importjavax.swing.*;//引入GUI包publicclassMyFirstGUIextendsJFrame{ publicMyFirstGUI(){ super("我的第一個(gè)窗口程序");//調(diào)用父類Jframe的構(gòu)造器方法
} publicstaticvoidmain(String[]args){ MyFirstGUIw1=newMyFirstGUI();
w1.setSize(300,150);//設(shè)置窗口大小
w1.setVisible(true);//顯示窗口
}}Gui程序框架向JFrame中添加組件步驟1.創(chuàng)建組件對(duì)象如:JLabeljL1=newJLabel("歡迎光臨");2.獲得添加的目標(biāo)容器Containerw1Container=w1.getContentPane();3.將組件添加到容器中w1Container.add(jL1);向JFrame中添加組件步驟1.創(chuàng)建組件對(duì)象布局管理在容器中的所有組件的布局(位置和大小)由布局管理器來(lái)控制,在java中提供了許多布局管理器,我們介紹以下幾種布局方式.FlowLayoutBorderlayoutGridLayout手工布局布局管理在容器中的所有組件的布局(位置和大?。┯刹季止芾砥鱽?lái)設(shè)置布局管理器每個(gè)容器擁有自己默認(rèn)的布局管理器。ContentPane的默認(rèn)布局是BorderLayout。如果不希望使用默認(rèn)布局,則可使用所有容器的父類Container的setLayout()方法改變。例如:JPanelpane=newJPanel();pane.setLayout(newBorderLayout);設(shè)置布局管理器每個(gè)容器擁有自己默認(rèn)的布局管理器。Conten組件布局方法順序布局(FlowLayout):將組件按從左至右,從上到下的順序逐個(gè)放置。邊界布局(BorderLayout),把容器分為5個(gè)區(qū):北區(qū)、南區(qū)、東區(qū)、西區(qū)、中區(qū)。組件可以指定自己放在那個(gè)區(qū),因?yàn)橹挥?個(gè)區(qū),所以最多容納5個(gè)組件。網(wǎng)格布局(GridLayout),把容器區(qū)域分成若干個(gè)網(wǎng)格,每個(gè)網(wǎng)格放置一個(gè)組件,適合數(shù)量眾多的組件。在創(chuàng)建網(wǎng)格布局時(shí),可以給出網(wǎng)格的行數(shù)和列數(shù)。組件布局方法順序布局(FlowLayout):將組件按從左至手工布局設(shè)置布局為手工布局如:w1Container.setLayout(null);設(shè)置組件顯示的位置和大小如1:jL1.setBounds(10,20,100,20);如2:jL2.setBounds(20,40,100,20);手工布局設(shè)置布局為手工布局布局中JPanel的使用JPanel是一個(gè)中間級(jí)容器組件,可以容納其它的組件。靈活使用JPanel,可以設(shè)計(jì)出較復(fù)雜的圖形用戶界面。布局中JPanel的使用JPanel是一個(gè)中間級(jí)容器組件,可事件處理importjavax.swing.*;importjava.awt.*;publicclassMyFirstEventextendsJFrame{ publicMyFirstEvent(){ super("事件處理機(jī)制");} publicstaticvoidmain(String[]args){ MyFirstEventw1=newMyFirstEvent(); Containerw1Container=w1.getContentPane(); w1Container.setLayout(null); JLabeljL1=newJLabel("歡迎訪問(wèn),請(qǐng)點(diǎn)擊下面的按鈕"); jL1.setBounds(50,20,200,30); w1Container.add(jL1); JButtonjB1=newJButton("被按下偶數(shù)次"); jB1.setBounds(60,60,150,30); w1Container.add(jB1); w1.setSize(300,150); w1.setVisible(true); }}事件處理importjavax.swing.*;事件處理中的4要素事件源:產(chǎn)生事件的組件事件事件監(jiān)聽(tīng)器:負(fù)責(zé)監(jiān)聽(tīng)事件的程序事件服務(wù)程序:針對(duì)具體事件的處理代碼事件處理中的4要素事件源:產(chǎn)生事件的組件事件處理機(jī)制事件處理機(jī)制添加事件處理步驟:(1)為組件注冊(cè)事件監(jiān)聽(tīng)器:如:addActionListener(this)(2)編寫(xiě)事件監(jiān)聽(tīng)器類,要求實(shí)現(xiàn)相關(guān)的事件監(jiān)聽(tīng)器接口。并在事件監(jiān)聽(tīng)器類中實(shí)現(xiàn)特定方法。(3)并在事件監(jiān)聽(tīng)器類中實(shí)現(xiàn)特定方法。注:常用事件處理接口包含在java.awt.event包中,因此,程序必須引入該包。添加事件處理步驟:(1)為組件注冊(cè)事件監(jiān)聽(tīng)器:事件服務(wù)類的建立事件服務(wù)類必須實(shí)心相應(yīng)的事件監(jiān)聽(tīng)器接口或繼承適配器類。事件監(jiān)聽(tīng)器接口適配器Adapter類WindowListenerWindowAdapterMouseMotionListerMouseMotionAdapterMouseListenerMouseAdapterKeyListenerKeyAdapterFocusListenerFocusAdapterActionListenerItemListenerAdjustmentListener事件服務(wù)類的建立事件服務(wù)類必須實(shí)心相應(yīng)的事件監(jiān)聽(tīng)器接口或繼承常用組件的使用Font和Color標(biāo)簽和按鈕文本輸入框和密碼輸入框單選按鈕和復(fù)選框下拉菜單菜單對(duì)話框文件框常用組件的使用Font和ColorFont、Color、標(biāo)簽和按鈕應(yīng)用實(shí)例
實(shí)例:當(dāng)我們點(diǎn)擊“顏色變化”按鈕時(shí),“歡迎光臨”的顏色在紅與蘭色之間變換,當(dāng)點(diǎn)擊“推出”按鈕時(shí),退出應(yīng)用程序。程序:MyButtonExample.javaFont、Color、標(biāo)簽和按鈕應(yīng)用實(shí)例實(shí)例:當(dāng)我們點(diǎn)擊“文本輸入框和密碼輸入框應(yīng)用實(shí)例實(shí)例:當(dāng)我們輸入正確的用戶名和密碼(“JAVA”和“1234”)時(shí),系統(tǒng)提示正確信息,否則提示錯(cuò)誤信息。程序:MyFieldExample.java文本輸入框和密碼輸入框應(yīng)用實(shí)例實(shí)例:當(dāng)我們輸入正確的用戶名和單選按鈕和復(fù)選框應(yīng)用實(shí)例實(shí)例:當(dāng)我們?cè)谖谋究蛑休斎霐?shù)值,并按回車鍵時(shí),系統(tǒng)能根據(jù)當(dāng)前所選擇的運(yùn)算符進(jìn)行運(yùn)算,并將結(jié)果以選擇的狀態(tài)進(jìn)行顯示。程序:MyRadioButtonEvent.java單選按鈕和復(fù)選框應(yīng)用實(shí)例實(shí)例:當(dāng)我們?cè)谖谋究蛑休斎霐?shù)值,并按下拉菜單應(yīng)用實(shí)例實(shí)例:制作1個(gè)簡(jiǎn)單的省會(huì)查詢器。當(dāng)我們選擇不同的省份時(shí),能將該省份的省會(huì)給顯示出來(lái)。程序:MyItemEvent.java下拉菜單應(yīng)用實(shí)例實(shí)例:制作1個(gè)簡(jiǎn)單的省會(huì)查詢器。當(dāng)我們選擇菜單應(yīng)用實(shí)例實(shí)例:完成一個(gè)“文件編輯”的基本界面。當(dāng)我們選擇不同的菜單時(shí),系統(tǒng)能顯示你所選擇的菜單,當(dāng)選擇“退出”時(shí),退出應(yīng)用程序程序:MyMenuExample.java菜單應(yīng)用實(shí)例實(shí)例:完成一個(gè)“文件編輯”的基本界面。當(dāng)我們選擇標(biāo)準(zhǔn)對(duì)話框應(yīng)用實(shí)例標(biāo)準(zhǔn)對(duì)話框應(yīng)用實(shí)例自定義對(duì)話框應(yīng)用實(shí)例實(shí)例:針對(duì)上例,我們做一個(gè)修改,當(dāng)我們進(jìn)入到登陸窗口,選擇“注冊(cè)”按鈕時(shí),系統(tǒng)進(jìn)入“用戶注冊(cè)”對(duì)話框,在該對(duì)話框中,可以顯示用戶在登陸窗口的昵稱,并要求“重輸密碼”,當(dāng)“重輸密碼”與登陸窗口的密碼一致時(shí),給出“注冊(cè)成功”,否則顯示“不成功”。程序:MyDialog.java
自定義對(duì)話框應(yīng)用實(shí)例實(shí)例:針對(duì)上例,我們做一個(gè)修改,當(dāng)我們進(jìn)文件框應(yīng)用實(shí)例:在前面設(shè)計(jì)的菜單項(xiàng)目中,加入文件框,當(dāng)我們選擇“打開(kāi)”時(shí),能彈出下所示的文件對(duì)話框。文件框應(yīng)用實(shí)例:在前面設(shè)計(jì)的菜單項(xiàng)目中,加入文件框,當(dāng)我們選Java圖形用戶界面(GUI)Java面向?qū)ο蟪绦蛟O(shè)計(jì)第6章-圖形用戶界面課件主要內(nèi)容圖形用戶界面開(kāi)發(fā)包:AWT包及Swing包掌握創(chuàng)建GUI程序的基本方法掌握使用布局管理器進(jìn)行界面布局的基本方法掌握Swing包中常用組件的基本用法掌握J(rèn)ava事件處理機(jī)制主要內(nèi)容圖形用戶界面開(kāi)發(fā)包:AWT包及Swing包Java中開(kāi)發(fā)圖形用戶界面的資源界面元素:容器和組件java.awt包java.swing包布局:常用布局管理類:java.awt新增布局管理類:java.swing事件處理:常用事件處理類或接口:java.awt.event新增事件處理類或接口:Java.swing.eventJava中開(kāi)發(fā)圖形用戶界面的資源界面元素:容器和組件JavaGUI組件AWT(AbstractWindowToolkit):早期版本。包為:java.awt其優(yōu)點(diǎn)是:簡(jiǎn)單、系統(tǒng)開(kāi)銷??;但是它開(kāi)發(fā)出來(lái)的應(yīng)用程序移植性差,而且不如Windows自帶的程序看起來(lái)精美。Swing:Java1.2版本正式加入的新圖形用戶版本。包為:javax.swing優(yōu)點(diǎn)是:不包含任何與平臺(tái)有關(guān)的本地代碼,基于swing的應(yīng)用程序具有很好的可移植性;具有比AWT更為豐富的組件;組件的形式也可以多樣化;使用MVC體系結(jié)構(gòu)進(jìn)行設(shè)計(jì);JavaGUI組件AWT(AbstractWindowAWT組件和swing組件的關(guān)系幾乎所有的AWT組件都有對(duì)應(yīng)的swing組件,swing組件名前多一個(gè)字母“J”。Swing對(duì)AWT組件進(jìn)行了修改,且增加了新的組件。本課程我們使用swing組件開(kāi)發(fā)圖形用戶界面。AWT組件和swing組件的關(guān)系幾乎所有的AWT組件都有對(duì)應(yīng)使用swing開(kāi)發(fā)GUI所需的資源開(kāi)發(fā)圖形用戶界面程序通常需導(dǎo)入:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;使用swing開(kāi)發(fā)GUI所需的資源開(kāi)發(fā)圖形用戶界面程序通常需Gui程序框架importjavax.swing.*;//引入GUI包publicclassMyFirstGUIextendsJFrame{ publicMyFirstGUI(){ super("我的第一個(gè)窗口程序");//調(diào)用父類Jframe的構(gòu)造器方法
} publicstaticvoidmain(String[]args){ MyFirstGUIw1=newMyFirstGUI();
w1.setSize(300,150);//設(shè)置窗口大小
w1.setVisible(true);//顯示窗口
}}Gui程序框架向JFrame中添加組件步驟1.創(chuàng)建組件對(duì)象如:JLabeljL1=newJLabel("歡迎光臨");2.獲得添加的目標(biāo)容器Containerw1Container=w1.getContentPane();3.將組件添加到容器中w1Container.add(jL1);向JFrame中添加組件步驟1.創(chuàng)建組件對(duì)象布局管理在容器中的所有組件的布局(位置和大小)由布局管理器來(lái)控制,在java中提供了許多布局管理器,我們介紹以下幾種布局方式.FlowLayoutBorderlayoutGridLayout手工布局布局管理在容器中的所有組件的布局(位置和大小)由布局管理器來(lái)設(shè)置布局管理器每個(gè)容器擁有自己默認(rèn)的布局管理器。ContentPane的默認(rèn)布局是BorderLayout。如果不希望使用默認(rèn)布局,則可使用所有容器的父類Container的setLayout()方法改變。例如:JPanelpane=newJPanel();pane.setLayout(newBorderLayout);設(shè)置布局管理器每個(gè)容器擁有自己默認(rèn)的布局管理器。Conten組件布局方法順序布局(FlowLayout):將組件按從左至右,從上到下的順序逐個(gè)放置。邊界布局(BorderLayout),把容器分為5個(gè)區(qū):北區(qū)、南區(qū)、東區(qū)、西區(qū)、中區(qū)。組件可以指定自己放在那個(gè)區(qū),因?yàn)橹挥?個(gè)區(qū),所以最多容納5個(gè)組件。網(wǎng)格布局(GridLayout),把容器區(qū)域分成若干個(gè)網(wǎng)格,每個(gè)網(wǎng)格放置一個(gè)組件,適合數(shù)量眾多的組件。在創(chuàng)建網(wǎng)格布局時(shí),可以給出網(wǎng)格的行數(shù)和列數(shù)。組件布局方法順序布局(FlowLayout):將組件按從左至手工布局設(shè)置布局為手工布局如:w1Container.setLayout(null);設(shè)置組件顯示的位置和大小如1:jL1.setBounds(10,20,100,20);如2:jL2.setBounds(20,40,100,20);手工布局設(shè)置布局為手工布局布局中JPanel的使用JPanel是一個(gè)中間級(jí)容器組件,可以容納其它的組件。靈活使用JPanel,可以設(shè)計(jì)出較復(fù)雜的圖形用戶界面。布局中JPanel的使用JPanel是一個(gè)中間級(jí)容器組件,可事件處理importjavax.swing.*;importjava.awt.*;publicclassMyFirstEventextendsJFrame{ publicMyFirstEvent(){ super("事件處理機(jī)制");} publicstaticvoidmain(String[]args){ MyFirstEventw1=newMyFirstEvent(); Containerw1Container=w1.getContentPane(); w1Container.setLayout(null); JLabeljL1=newJLabel("歡迎訪問(wèn),請(qǐng)點(diǎn)擊下面的按鈕"); jL1.setBounds(50,20,200,30); w1Container.add(jL1); JButtonjB1=newJButton("被按下偶數(shù)次"); jB1.setBounds(60,60,150,30); w1Container.add(jB1); w1.setSize(300,150); w1.setVisible(true); }}事件處理importjavax.swing.*;事件處理中的4要素事件源:產(chǎn)生事件的組件事件事件監(jiān)聽(tīng)器:負(fù)責(zé)監(jiān)聽(tīng)事件的程序事件服務(wù)程序:針對(duì)具體事件的處理代碼事件處理中的4要素事件源:產(chǎn)生事件的組件事件處理機(jī)制事件處理機(jī)制添加事件處理步驟:(1)為組件注冊(cè)事件監(jiān)聽(tīng)器:如:addActionListener(this)(2)編寫(xiě)事件監(jiān)聽(tīng)器類,要求實(shí)現(xiàn)相關(guān)的事件監(jiān)聽(tīng)器接口。并在事件監(jiān)聽(tīng)器類中實(shí)現(xiàn)特定方法。(3)并在事件監(jiān)聽(tīng)器類中實(shí)現(xiàn)特定方法。注:常用事件處理接口包含在java.awt.event包中,因此,程序必須引入該包。添加事件處理步驟:(1)為組件注冊(cè)事件監(jiān)聽(tīng)器:事件服務(wù)類的建立事件服務(wù)類必須實(shí)心相應(yīng)的事件監(jiān)聽(tīng)器接口或繼承適配器類。事件監(jiān)聽(tīng)器接口適配器Adapter類WindowListenerWindowAdapterMouseMotionListerMouseMotionAdapterMouseListenerMouseAdapterKeyListenerKeyAdapterFocusListenerFocusAdapterActionListenerItemListenerAdjustmentListener事件服務(wù)類的建立事件服務(wù)類必須實(shí)心相應(yīng)的事件監(jiān)聽(tīng)器接口或繼承常用組件的使用Font和Color標(biāo)簽和按鈕文本輸入框和密碼輸入框單選按鈕和復(fù)選框下拉菜單菜單對(duì)話框文件框常用組件的使用Font和ColorFont、Color、標(biāo)簽和按鈕應(yīng)用實(shí)例
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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年廈門a2貨運(yùn)從業(yè)資格證考試
- 2025年武威駕??荚囏涍\(yùn)從業(yè)資格證考試
- 《中醫(yī)藥基礎(chǔ)》課程標(biāo)準(zhǔn)
- 減肥連鎖加盟合同范本
- 農(nóng)村后院出租合同范本
- 廠房車間裝修合同范本
- 加工合同范本文庫(kù)
- 中專畢業(yè)個(gè)人自我鑒定
- 關(guān)于小麥?zhǔn)召?gòu)合同范本
- 倉(cāng)庫(kù)配送員合同范本
- 部編版二年級(jí)《道德與法治》下冊(cè)全冊(cè)教案
- 檔案館建筑設(shè)計(jì)規(guī)范
- 《英語(yǔ)閱讀3》課程教案
- 安全標(biāo)準(zhǔn)化法律法規(guī)識(shí)別清單
- 高分子材料完整版課件
- DB1301∕T 369-2021 設(shè)施蔬菜有機(jī)肥替代化肥技術(shù)規(guī)程
- IPCJEDEC J-STD-020 塑料集成電路(IC)SMD的潮濕回流敏感性分類 該
- 急診與災(zāi)難醫(yī)學(xué)第二版配套課件 05 心悸與心律失常
- 流體力學(xué)第二版蔡增基課件
- 天然氣管道保護(hù)蓋板涵施工方案
- 燒結(jié)普通磚抗壓強(qiáng)度試驗(yàn)
評(píng)論
0/150
提交評(píng)論