圖形用戶界面_第1頁
圖形用戶界面_第2頁
圖形用戶界面_第3頁
圖形用戶界面_第4頁
圖形用戶界面_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、JAVA面向?qū)ο蟪绦蛟O(shè)計第七章 GUI圖形用戶界面n本章的內(nèi)容與目標本章的內(nèi)容與目標q掌握圖形用戶界面的設(shè)計思想和方法掌握圖形用戶界面的設(shè)計思想和方法nApplet應(yīng)用程序應(yīng)用程序nAWT圖形用戶界面圖形用戶界面nSwing圖形用戶圖形用戶界面界面Applet 小應(yīng)用程序小應(yīng)用程序Applet應(yīng)用程序應(yīng)用程序nJava 有兩類應(yīng)用程序有兩類應(yīng)用程序qApplication java應(yīng)用程序應(yīng)用程序qApplet 小應(yīng)用程序小應(yīng)用程序nJava Applet是在是在www環(huán)境中運行的環(huán)境中運行的Java程序,它不是完程序,它不是完整的獨立運行程序整的獨立運行程序nApplet程序不需要程序不需要

2、main方法,它必須是方法,它必須是Java定義好的定義好的Applet類或者類或者JApplet類的子類類的子類nApplet的執(zhí)行首先必須創(chuàng)建一個的執(zhí)行首先必須創(chuàng)建一個HTML文件,通過文件,通過HTML代碼告訴瀏覽器載入何種代碼告訴瀏覽器載入何種Applet以及如何運行。以及如何運行。n編譯完成的編譯完成的.class文件是由瀏覽器來解釋和運行的文件是由瀏覽器來解釋和運行的n顯然,顯然,Applet的執(zhí)行過程較的執(zhí)行過程較Application復(fù)雜。復(fù)雜。Applet應(yīng)用程序應(yīng)用程序n Java Applet的書寫格式的書寫格式import java.applet.*; public c

3、lass MyApplet extends Applet ; Applet應(yīng)用程序應(yīng)用程序nJava Applet的運行控制的運行控制public void paint(Graphics g)Java.applet.Appletpublic void init()public void destroy()public void start()public void stop()Applet應(yīng)用程序應(yīng)用程序nJava Applet的運行控制的運行控制qApplet中沒有中沒有main()方法。當方法。當Applet被瀏覽器運行時,被瀏覽器運行時, init() 、start()、stop()、d

4、estroy()方法等自動執(zhí)行:方法等自動執(zhí)行:q init()方法:初始化,自動調(diào)用,只執(zhí)行一次。完成一方法:初始化,自動調(diào)用,只執(zhí)行一次。完成一些些Applet 初始化的操作。初始化的操作。q start()方法:初始化后,將啟動方法:初始化后,將啟動Start()方法。本方法是方法。本方法是Applet的主體,在其中可以執(zhí)行一些任務(wù)或啟動相關(guān)的的主體,在其中可以執(zhí)行一些任務(wù)或啟動相關(guān)的線程來執(zhí)行任務(wù),會多次運行線程來執(zhí)行任務(wù),會多次運行q stop()方法:離開方法:離開Applet所在頁面時調(diào)用,以停止消耗所在頁面時調(diào)用,以停止消耗系統(tǒng)資源。系統(tǒng)資源。q destroy()方法:瀏覽器

5、關(guān)閉時自動調(diào)用,以清除方法:瀏覽器關(guān)閉時自動調(diào)用,以清除Applet所用的所有資源。所用的所有資源。Applet應(yīng)用程序應(yīng)用程序nJava Applet的運行控制的運行控制qpaint(Graphics g):繪圖,是:繪圖,是Component中的方法。可中的方法。可使使applet在屏幕上顯示某些信息,如文字、色彩、背景在屏幕上顯示某些信息,如文字、色彩、背景或圖像等。或圖像等。npaint需要需要 import java.awt.Graphics;npaint在在applet的生命周期內(nèi)會多次自動調(diào)用。的生命周期內(nèi)會多次自動調(diào)用。如:如: applet加載、頁面切換又換回來、改變?yōu)g覽器窗

6、口的大小、加載、頁面切換又換回來、改變?yōu)g覽器窗口的大小、 applet本身需要顯示信息時,本身需要顯示信息時,paint()方法都會被自動調(diào)用。方法都會被自動調(diào)用。n paint()方法有一個參數(shù)方法有一個參數(shù)g。瀏覽器的。瀏覽器的Java運行環(huán)境產(chǎn)生一個運行環(huán)境產(chǎn)生一個Graphics類的實例,并傳遞給方法類的實例,并傳遞給方法paint()中的參數(shù)中的參數(shù)g。可以把。可以把g理解為一個畫筆。理解為一個畫筆。qrepaint():重新繪圖。在響應(yīng)用戶和:重新繪圖。在響應(yīng)用戶和Applet的交互時經(jīng)的交互時經(jīng)常要用到。通常只是調(diào)用,而不重寫這個方法。常要用到。通常只是調(diào)用,而不重寫這個方法。A

7、pplet應(yīng)用程序應(yīng)用程序nJava Applet的運行控制的運行控制q程序加載程序加載q任意變動、任意變動、縮放小窗口縮放小窗口q關(guān)閉小窗口關(guān)閉小窗口q最小化再打最小化再打開小窗口開小窗口import java.applet.Applet;import java.awt.Graphics;public class cc extends Appletpublic void init()System.out.println(調(diào)用了init()方法 );public void start()System.out.println(調(diào)用了start()方法 );public void stop()Sy

8、stem.out.println(調(diào)用了stop()方法 );public void destroy()System.out.println(調(diào)用了destroy()方法 );public void paint(Graphics g) System.out.println(調(diào)用了paint() 方法 ); g.drawString(hello ,java!,25,25);Applet應(yīng)用程序應(yīng)用程序nJava Applet的運行控制的運行控制q程序運行從開始到結(jié)束的過程稱為程序的生命周期。獨程序運行從開始到結(jié)束的過程稱為程序的生命周期。獨立應(yīng)用程序的生命周期從立應(yīng)用程序的生命周期從main()

9、方法開始,直到運行()方法開始,直到運行結(jié)束結(jié)束qApplet應(yīng)用程序的生命周期與瀏覽器相關(guān)。作為瀏覽器應(yīng)用程序的生命周期與瀏覽器相關(guān)。作為瀏覽器的一部分,的一部分,Applet程序何時運行,何時結(jié)束都由瀏覽器程序何時運行,何時結(jié)束都由瀏覽器控制,控制,Applet對象只是作為瀏覽器窗口中運行的一個線對象只是作為瀏覽器窗口中運行的一個線程。程。q顯示顯示Applet時,啟動時,啟動Applet線程運行。線程運行。q不顯示不顯示Applet時,停止時,停止 Applet線程運行。線程運行。 Applet應(yīng)用程序應(yīng)用程序n HTML的基本結(jié)構(gòu)的基本結(jié)構(gòu)qHTML文檔是由包含于文檔是由包含于HTML

10、標記標記(, )內(nèi)的,頭部內(nèi)的,頭部(,)和正文和正文(,)兩部分構(gòu)成兩部分構(gòu)成 文檔頭部,主要為文檔的設(shè)置信息文檔頭部,主要為文檔的設(shè)置信息 文檔正文,即網(wǎng)頁的內(nèi)容文檔正文,即網(wǎng)頁的內(nèi)容 Applet應(yīng)用程序應(yīng)用程序nHTML中的中的Applet標記標記q完整語法:完整語法: Applet應(yīng)用程序應(yīng)用程序nHTML中的中的Applet標記標記q一個好的小應(yīng)用程序,應(yīng)該提供用戶能夠設(shè)置外部參數(shù)一個好的小應(yīng)用程序,應(yīng)該提供用戶能夠設(shè)置外部參數(shù)的功能,以使得用戶能夠根據(jù)自己的需要來應(yīng)用它。的功能,以使得用戶能夠根據(jù)自己的需要來應(yīng)用它。q標記可以使得標記可以使得Applet能夠從頁面中獲取所需能夠從

11、頁面中獲取所需的參數(shù)。的參數(shù)。q的作用類似于應(yīng)用程序中的作用類似于應(yīng)用程序中main()方法里參數(shù)方法里參數(shù)String args qApplet可以用其方法可以用其方法getParameter()獲取獲取屬性指定屬性指定的參數(shù)的參數(shù)Applet應(yīng)用程序應(yīng)用程序nJava Appletq示例示例Applet應(yīng)用程序應(yīng)用程序nJava Applet的其他功能的其他功能q標識網(wǎng)絡(luò)資源標識網(wǎng)絡(luò)資源ngetDocumentBase() 返回返回HTML對應(yīng)的地址對應(yīng)的地址ngetCodeBase()返回返回Applet類文件對應(yīng)的地址類文件對應(yīng)的地址n需需import .URL;import java

12、.applet.Applet;import java.awt.Graphics;import .URL;public class NewApplet extends Applet public void paint(Graphics g) String msg; URL url=getCodeBase(); msg=Code Base:+url.toString(); g.drawString(msg, 10, 20); url = getDocumentBase(); msg=Document Base:+url.toString(); g.drawString(msg, 10, 40);

13、Applet應(yīng)用程序應(yīng)用程序nJava Applet的其他功能的其他功能q獲取圖片獲取圖片public Image getImage(URL url,String name)url:文件地址name:文件名q顯示圖片顯示圖片public abstract boolean drawImage(Image img,int x,int y,int width, int height, ImageObserver obs) img:獲取的圖片x, y:顯示位置width,height :圖片高、寬obs:圖像觀察者,用于關(guān)注圖像是否可用,常用thisApplet應(yīng)用程序應(yīng)用程序nJava Applet

14、的其他功能的其他功能q圖片示例圖片示例public class NewApplet extends Applet public void paint(Graphics g) String msg; URL url=getCodeBase(); Image img1 =getImage(url,3.jpg); Image img2 =getImage(getCodeBase(),photo3.jpg); Image img3 =Toolkit.getDefaultToolkit().getImage(d:4.jpg); Image img4 =getImage(getDocumentBase()

15、,3.jpg); g.drawImage(img1, 10, 0, this); g.drawImage(img2, 10, 150, this); g.drawImage(img3, 10, 300, this); g.drawImage(img3, 10,450, this); import java.applet.Applet;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import .URL;Applet應(yīng)用程序應(yīng)用程序nJava Applet的其他功能的其他功能q播放聲音播放聲音publ

16、ic void play(URL url, String name)nplay()方法的調(diào)用格式與方法的調(diào)用格式與getImage()方法是完全一樣的,也采用方法是完全一樣的,也采用URL來定位文件。來定位文件。n如果要播放的聲音文件與如果要播放的聲音文件與Applet類文件存放在同一個目錄下,類文件存放在同一個目錄下,就可以:就可以:play(getCodeBase(), a.mid);n如果找不到如果找不到play()方法中指定的聲音文件,則聽不到聲音。而且方法中指定的聲音文件,則聽不到聲音。而且play()方法是一次性播放的,不能反復(fù)播放。方法是一次性播放的,不能反復(fù)播放。n支持格式:支

17、持格式:wav、au、mid等等Applet應(yīng)用程序應(yīng)用程序nJava Applet的其他功能的其他功能q播放聲音播放聲音 利用利用java.applet.AudioClip類和類和Applet類一起實現(xiàn)聲音播放:類一起實現(xiàn)聲音播放:nAudioClip中有三個方法:中有三個方法:qpublic void play():播放一遍:播放一遍qpublic void loop() :循環(huán)播放:循環(huán)播放qpublic void stop() :停止播放:停止播放n為得到為得到AudioClip對象,可以利用對象,可以利用Applet類提供的聲音裝載方法類提供的聲音裝載方法載入一個聲音文件,形成一個聲

18、音對象實例:載入一個聲音文件,形成一個聲音對象實例:qpublic AudioClip getAudioClip(URL url)qpublic AudioClip getAudioClip(URL url, String name)n創(chuàng)建了創(chuàng)建了AudioClip對象,就可以裝載聲音了,也就是利用對象,就可以裝載聲音了,也就是利用AudioClip的方法來進行聲音操作了。的方法來進行聲音操作了。Applet應(yīng)用程序應(yīng)用程序nJava Applet的其他功能的其他功能q聲音示例聲音示例AWT圖形用戶界面圖形用戶界面 圖形用戶界面圖形用戶界面圖形用戶界面圖形用戶界面n圖形用戶界面(圖形用戶界面(

19、GUI:Graphics User Interface)q使用戶和程序之間可以方便地進行交互,以替代傳統(tǒng)的命令使用戶和程序之間可以方便地進行交互,以替代傳統(tǒng)的命令行輸入輸出方式行輸入輸出方式nJava提供了兩類用戶圖形界面提供了兩類用戶圖形界面q抽象窗口工具包抽象窗口工具包AWT:Abstract Window Toolkitq用戶界面開發(fā)工具包用戶界面開發(fā)工具包Swing n用戶圖形界面的主要工作用戶圖形界面的主要工作q創(chuàng)建組成界面的各種成分和元素,并按需要進行布局和排列創(chuàng)建組成界面的各種成分和元素,并按需要進行布局和排列q定義各個元素對不同事件的響應(yīng),從而實現(xiàn)用戶與程序之間定義各個元素對不

20、同事件的響應(yīng),從而實現(xiàn)用戶與程序之間的交互功能的交互功能AWT圖形圖形用戶界面用戶界面nAWT的層次關(guān)系的層次關(guān)系qAWT由由Java的的java.awt包提供包提供q該包中有許多用來設(shè)計該包中有許多用來設(shè)計GUI的組件的組件(component)類,類,如:按鈕、菜單、列表、文本框等組件類,同時它如:按鈕、菜單、列表、文本框等組件類,同時它還包含窗口、面板等容器類。還包含窗口、面板等容器類。q在容器上可以容納其它組件如按鈕、菜單在容器上可以容納其它組件如按鈕、菜單AWT容器AWT圖形圖形用戶界面用戶界面njava.awt類包層次類包層次BorderLayoutAWTEventFlowLayo

21、utComponentObjectMenuComponentFontCardLayoutGridLayoutGridBagLayoutToolkitGraphicsAWT圖形圖形用戶界面用戶界面n常用組件的層次關(guān)系常用組件的層次關(guān)系A(chǔ)ppletPanelContainerComponentCanvasWindowFrameButtonChoiceScrollPaneTextComponentTextFieldTextAreaDialogCheckboxLabelScrollbarListAWT圖形圖形用戶界面用戶界面n組件在容器中的定位組件在容器中的定位q坐標坐標(x,y)表示對應(yīng)于容器左上角

22、的位置表示對應(yīng)于容器左上角的位置q容器位置變化時,嵌入容器的組件在容器中的相對位置不變?nèi)萜魑恢米兓瘯r,嵌入容器的組件在容器中的相對位置不變q默認單位為像素默認單位為像素AWT圖形圖形用戶界面用戶界面n組件類常用方法組件類常用方法qComponent, MenuComponentqComponent類方法:類方法: getComponentAt(int x,int y), getFont(), getName(),getSize(),repaint(),paint(Graphics g)npublic void setBounds(參數(shù)重載參數(shù)重載 ) 設(shè)置組件的初始位置設(shè)置組件的初始位置npu

23、blic void setSize(參數(shù)參數(shù)) 設(shè)置大小。設(shè)置大小。npublic void setVisible(boolean b) 是否可見,默認不可見是否可見,默認不可見npublic void setResizable(boolean b) 是否可調(diào)整大小是否可調(diào)整大小AWT圖形圖形用戶界面用戶界面n容器容器Containerq是一種可以含有其他組件的組件,是一種可以含有其他組件的組件,AWT中的容器都是從中的容器都是從Container抽象類派生而來的抽象類派生而來的.n類型:類型:Window, panel, ScrollPane,n常用:常用:Panel, Frame, App

24、letq面板面板Panel和和Applet:它不創(chuàng)建自己的窗口,使用中經(jīng)常一個:它不創(chuàng)建自己的窗口,使用中經(jīng)常一個面板里添加若干個組件后,再把面板放到另一個容器里缺省面板里添加若干個組件后,再把面板放到另一個容器里缺省的布局管理器為的布局管理器為FlowLayout。 qFrame:是一個功能齊全的、頂層的、可重定義尺寸的、帶:是一個功能齊全的、頂層的、可重定義尺寸的、帶有菜單條的窗口。可以指定標題、圖標和光標。它缺省的布有菜單條的窗口。可以指定標題、圖標和光標。它缺省的布局管理器為局管理器為BorderLayout。qWindow:不常用,不常用, 頂層的窗口,不帶邊界和菜單條。頂層的窗口,

25、不帶邊界和菜單條。AWT圖形圖形用戶界面用戶界面n窗口窗口FrameqFrame類是類是Container類的間接子類。當需要一個窗類的間接子類。當需要一個窗口時,可使用口時,可使用Frame或其子類創(chuàng)建一個對象。或其子類創(chuàng)建一個對象。q窗口也是一個容器,可以向窗口添加組件。窗口也是一個容器,可以向窗口添加組件。q需要注意的是,窗口默認地被系統(tǒng)添加到顯示器屏需要注意的是,窗口默認地被系統(tǒng)添加到顯示器屏幕上。幕上。不允許不允許將一個窗口添加到另一個容器中。將一個窗口添加到另一個容器中。AWT圖形圖形用戶界面用戶界面nFrame的常用方法的常用方法q構(gòu)造構(gòu)造nFrame() 該構(gòu)造方法可以創(chuàng)建一個

26、無標題的窗口該構(gòu)造方法可以創(chuàng)建一個無標題的窗口nFrame(String s) 該構(gòu)造方法可以創(chuàng)建一個標題為該構(gòu)造方法可以創(chuàng)建一個標題為s的窗口的窗口n窗口的默認布局為窗口的默認布局為BorderLayout布局布局q設(shè)置設(shè)置npublic void setBounds(int a,int b,int width,int height) 設(shè)置窗口設(shè)置窗口出現(xiàn)在屏幕的初始位置是出現(xiàn)在屏幕的初始位置是(a,b),即窗口左上角相對屏幕左上角,即窗口左上角相對屏幕左上角的坐標;窗口的寬是的坐標;窗口的寬是width,高是,高是height。npublic void setSize(int width,int height) 設(shè)置窗口的大小。設(shè)置窗口的大小。npublic void setVisible(boolean b) 設(shè)置窗口是否可見,默認是不設(shè)置窗口是否可見,默認是不可見。可見。npublic void setResizable(boolean b) 設(shè)置窗口是否可調(diào)整大小,設(shè)置窗口是否可調(diào)整大小,窗口默認是可調(diào)整大小的。窗口默認是可調(diào)整大小的。AWT圖形圖形用戶界面用戶界面nFrame示例示例AWT圖形圖形用戶界面用戶界面n常用基本組件常用基本組件q按鈕按鈕Button: Button(), Button(S

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論