《圖形界面設(shè)計AW》課件_第1頁
《圖形界面設(shè)計AW》課件_第2頁
《圖形界面設(shè)計AW》課件_第3頁
《圖形界面設(shè)計AW》課件_第4頁
《圖形界面設(shè)計AW》課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章圖形界面設(shè)計(AWT)1精選ppt第一章圖形界面設(shè)計(AWT)1精選ppt課程目標AWT包簡介Frame類及其主要方法六個常用控件:Button、Label、TextField、List、Choice、Panel窗體布局(FlowLayout、BorderLayout、GridBagLayout等)事件(按鈕事件、窗體事件、鼠標事件)2精選ppt課程目標AWT包簡介2精選ppt體驗項目——<QQ注冊> 編寫一個QQ用戶注冊窗體,當用戶在程序窗體中輸入信息后,點擊“確定”按鈕,把用戶的提交信息寫入到一個文本文件中,實現(xiàn)類似QQ注冊的功能。 程序的運行過程如下: (1)程序啟動后,出現(xiàn)“QQ注冊”窗體界面,填寫完整的信息,如圖所示:3精選ppt體驗項目——<QQ注冊> 編寫一個QQ用戶注冊窗體,當用(2)點擊“確定”按鈕,即可把注冊信息寫入到同一級目錄下的regInfor.txt文件中,同時控制臺上會顯示“注冊成功...”和用戶的注冊信息。如圖所示:(3)如果注冊時有任何一項為空,則控制臺會提示:“注冊信息失?。赫?zhí)顚懲暾男畔?..”,程序運行結(jié)果如圖所示:(4)若點擊圖1-1中的“取消”按鈕,將退出該程序。4精選ppt(2)點擊“確定”按鈕,即可把注冊信息寫入到同一級目錄下的r圖形界面設(shè)計簡介AWT簡介 AWT(AbstractWindowToolkit-抽象窗口工具箱)是Sun公司自JAVA1.0開始就提供的一個用于基本GUI編程的類庫,AWT庫包含了多種基本的界面控件類,它可以使我們輕松地創(chuàng)建一個窗口,并且在其中添加按鈕、文本框、列表等控件,下面就為大家介紹AWT庫的基本知識。AWT主要是由以下三個部分組成:組件(Components)容器(Containers)布局管理器(Layouts)5精選ppt圖形界面設(shè)計簡介AWT簡介組件(Components)容器窗體框架Frame類 在JAVA中,頂層窗口(沒有包含在另一個窗口中的窗口)我們習慣上稱它為框架,它是一個由最大化按鈕、最小化按鈕、關(guān)閉按鈕和框架名稱所組成的一個框架運行界面。在AWT庫中有Frame類與之相對應。 在JAVA圖形編程中,框架是最高層的,它是一個容器,所有的組件如按鈕、文本框等都包含在這個容器中。6精選ppt窗體框架Frame類 在JAVA中,頂層窗口(沒有包含在Frame類的創(chuàng)建及主要方法 我們先編寫一個程序,顯示一個簡單的框架,使大家對框架能有一個比較直觀的了解。 importjava.awt.Frame; publicclassFrameApp { publicstaticvoidmain(Stringargs[]) { Frameframe=newFrame(); frame.setSize(180,160); frame.show(); } }7精選pptFrame類的創(chuàng)建及主要方法 我們先編寫一個程序,顯示一我們先來分析一下上面的例子: 首先,為了能夠使用AWT中的Frame類,我們必須導入名為java.awt.Frame的包,然后在主函數(shù)中使用Frame類來實例化一個對象,這樣一個空的框架就創(chuàng)建好了,之后我們用框架對象的setSize()方法設(shè)置該框架的長和寬,然而這樣還不夠,由于框架創(chuàng)建時并不是可見的,我們還要調(diào)用框架對象的show()方法,使之顯示在屏幕上。這樣當我們運行這段程序后,屏幕上就會出現(xiàn)一個空白的框架了。 上面的程序我們用到了Frame類的幾個常用的方法。Frame類還有很多其它的方法,如下所示:8精選ppt我們先來分析一下上面的例子:8精選pptFrame類的幾個常用的方法setBackground(Colorc) 設(shè)置框架的背景色。setLocation(inta,intb) 設(shè)定框架出現(xiàn)在屏幕上的位置。setAlwaysOnTop(booleanb) 決定框架是否顯示在最上層。setName(Stringstr) 設(shè)置框架的名字。StringgetName() 獲取框架的名字。setTitle(Stringstr) 改變框架的標題。add(Componentc) 添加組件到框架Frame中。setIconImage(Imagei) 設(shè)置框架的圖標。setResizable(booleanb) 決定框架的大小是否可以改變。hide() 隱藏框架使Frame不可見。9精選pptFrame類的幾個常用的方法setBackground(控件類按鈕Button 按鈕控件Button組件的使用是最簡單的,只需要實例化Button類,并指定在按鈕上出現(xiàn)的標簽就行了(如果不想要標簽,亦可使用默認標簽,但這種情況極少出現(xiàn))。構(gòu)造方法: Button() 創(chuàng)建一個按鈕,按鈕上的標簽沒有任何內(nèi)容; Button(Stringlabel) 創(chuàng)建一個按鈕,自定義按鈕標簽上的內(nèi)容。 如:Bottonbutton=newButton(“按鈕");常用方法: setBackground(Colorcolor) 設(shè)置按鈕的背景色; setEnable(booleanb) 設(shè)置按鈕是否可用; setFont(Fontf) 設(shè)置按鈕標簽的字體; setForeground(Colorcolor) 設(shè)置按鈕的前景色; setLabel(Stringtext) 設(shè)置按鈕標簽的內(nèi)容; setVisible(booleanb) 設(shè)置按鈕是否可見。10精選ppt控件類按鈕Button10精選ppt按鈕的例子 importjava.awt.Frame; importjava.awt.Button; importjava.awt.FlowLayout; publicclassButtonAppextendsFrame { Buttonbutton1; Buttonbutton2=newButton("Second"); publicButtonApp() { super("按鈕示例"); this.setLayout(newFlowLayout()); button1=newButton(); button1.setLabel("First"); this.setSize(180,160); this.add(button1); this.add(button2); } publicstaticvoidmain(Stringargs[]) { ButtonAppbuttonApp=newButtonApp(); buttonApp.show(); } }

11精選ppt按鈕的例子 importjava.awt.Frame;11標簽Label 標簽控件Label也是一個很簡單的控件,用于在Frame中顯示一個文本標簽,它的用法和Button類似。構(gòu)造方法: Label() 創(chuàng)建一個標簽,標簽上沒有任何文字。Label(Stringtext) 創(chuàng)建一個標簽,并且自定義標簽上的文字。Label(Stringtext,intalignment) 創(chuàng)建一個標簽,并且自定義標 簽上的文字及對齊方向。常用方法: setAlignment(intalign) 設(shè)置標簽文本的對齊方式setBackground(Colorcolor) 設(shè)置標簽的背景色setEnable(booleanb) 設(shè)置標簽是否可用setFont(Fontf) 設(shè)置標簽文本的字體setForeground(Colorcolor) 設(shè)置標簽的前景色setText(Stringtext) 設(shè)置標簽的內(nèi)容setVisible(booleanb) 設(shè)置標簽是否可見12精選ppt標簽Label 標簽控件Label也是一個很簡單的控件,文本域TextField文本域控件TextField用來創(chuàng)建一個文本域,允許編輯單行文本。構(gòu)造方法: TextField() 創(chuàng)建一個文本域TextField(Stringtext) 創(chuàng)建一個文本域,并且初始化其內(nèi)容TextField(Stringtext,intcolumns) 創(chuàng)建一個文本域,有初始內(nèi) 容,并且可設(shè)置列數(shù)TextField(intcolumns) 創(chuàng)建一個文本域,沒有初始內(nèi) 容,可設(shè)置列數(shù)常用方法: setBackground(Colorcolor) 設(shè)置標簽的背景色。setColumns(intcolumns) 設(shè)置文本域的列數(shù)。setEditable(booleanb) 設(shè)置文本域可否編輯。setEnable(booleanb) 設(shè)置文本域是否可用。setFont(Fontf) 設(shè)置文本域文字的字體。setForeground(Colorcolor) 設(shè)置文本域的前景色。setText(Stringtext) 設(shè)置文本域的文本內(nèi)容。setVisible(booleanb) 設(shè)置文本域是否可見。13精選ppt文本域TextField文本域控件TextField用來創(chuàng)列表框List列表框控件List用來在Frame框架中顯示一個列表框。構(gòu)造方法: List() 創(chuàng)建一個空列表框 List(introws) 創(chuàng)建一個列表框,并指定行數(shù) List(introws,booleanmultipleMode) 創(chuàng)建一個列表框,指定行數(shù), 并指定是否使用多行選擇模式常用方法: add(Stringitem) 為列表框追加項目 add(Stringitem,intindex) 在列表框的index位置添加項目 addItem(Stringitem) 同add(Stringitem) addItem(Stringitem,intindex)同add(Stringitem,intindex) clear() 清除列表框的所有項目 intcountItems() 返回int值,即返回列表框的項目總數(shù) delItem(intindex) 刪除在列表框index位置的項目 delItems(intstart,intend) 刪除從列表框的start位置開始到end位置的所有項目 StringgetSelectedItem() 返回String值,返回一個選中的項目 String[]getSelectedItems()返回String[]數(shù)組,返回所有被選中的項目 removeAll() 清除列表框的所有項目 select(intindex) 選中列表框index位置上的項目 setMultipleMode(booleanb)設(shè)置能否采用多行選擇模式14精選ppt列表框List列表框控件List用來在Frame框架中顯示一選擇框Choice選擇框控件Choice用來在Frame框架中顯示一個選擇框。構(gòu)造方法: Choice() 創(chuàng)建一個選擇框常用方法: addItem(Stringitem) 為選擇框添加一個項目 StringgetItem(intindex) 返回String值,返回選擇框index位置的項目 的文本標簽 intgetItemCount() 返回int值,返回選擇框擁有的項目總數(shù) StringgetSelectedItem() 返回String值,返回已選中的項目 insert(Stringitem,intindex) 在index位置上插入文本標簽為item的項目 remove(intindex) 刪除index位置上的項目 removeAll() 刪除所有項目 select(intindex) 選中index位置上的項目15精選ppt選擇框Choice選擇框控件Choice用來在Frame框面板Panel 面板控件Panel是JAVA中常用到的容器之一,Panel可以讓組件加入其中,還可以設(shè)置Panel自己的布局管理器,再由這個管理器控制Panel中各個組件的位置及大小。有了這種特性,我們就可以通過在簡單布局中加入Panel的方法,創(chuàng)造出更為復雜的布局。所以適當?shù)睦肞anel可以使版面設(shè)計更為簡單。構(gòu)造方法: Panel() 建立一個Panel,默認布局是FlowLayoutPanel(LayoutManagerlayout)建立一個Panel,并且自定義布局管理器常用方法: add() 為面板添加其它控件,如Button,Label等setLayout(LayoutManagermgr)設(shè)置面板中組件的版面16精選ppt面板Panel 面板控件Panel是JAVA中常用到的容窗體布局為什么要使用布局管理 在最初接觸JAVA時,大家就應該了解到JAVA語言是跨平臺的語言,而不同的平臺對圖形界面的管理也是不盡相同的,所以如果我們采用絕對定位的方法管理JAVA圖形界面的布局,那么這個界面就會在某些環(huán)境下變得支離破碎。JAVA的開發(fā)人員當然會考慮到這個問題,他們提出的解決方案就是預先定義若干種布局,再依靠這些基本布局的組合,創(chuàng)造出更為復雜的布局方式。這樣,我們開發(fā)的應用程序的版面就不會因為應用在不同的操作平臺下而變的混亂。這就是我們要講的布局管理。17精選ppt窗體布局為什么要使用布局管理17精選ppt三種常用的布局FlowLayout布局GridLayout布局BorderLayout布局流水布局網(wǎng)格布局邊框布局18精選ppt三種常用的布局FlowLayout布局GridLayoutFlowLayout布局 FlowLayout布局是一個相當簡單的排列方法,形如其名FlowLayout就如同流水一般,將加入其中的組件一個接著一個從左往右依次排列下去,若組件個數(shù)太多,多到無法只用一行顯示時,F(xiàn)lowLayout布局管理器會自動將組件向下一行排列。要使用FlowLayout這種布局,只要在容器中設(shè)置使用FlowLayout這種版面管理器即可。構(gòu)造方法:FlowLayout() 建立一個新的FlowLayout,此FlowLayout默認為居中對齊,而且組件彼此之間有5單位的水平與垂直間距。FlowLayout(intalign) 建立一個新的FlowLayout,此FlowLayout可設(shè)置排列方式,而且組件彼此之間有5單位的水平與垂直間距。FlowLayout(intalign,inthgap,intvgap) 建立一個新的FlowLayout,此FlowLayout可設(shè)置排列方式與組件間距。19精選pptFlowLayout布局 FlowLayout布局是一個 FlowLayout類的后兩個構(gòu)造方法均有參數(shù),其中參數(shù)align可以設(shè)定FlowLayout布局中的組件靠什么方向排列。FlowLayout共有五種排列方式CENTER(默認值)LEFTRIGHTLEADINGTRAILING20精選ppt FlowLayout類的后兩個構(gòu)造方法均有參數(shù),其中參數(shù)GridLayout布局 GridLayout比FlowLayout多了行和列的設(shè)置,也就是說你要先設(shè)置GridLayout共有幾行幾列,就如同一個二維平面一般,然后添加GridLayout布局中的組件會填充第一行的格子,然后再從第二行開始填。依此類推,就像是填充一個個格子一般,而且GridLayout布局管理器會將填進去的組件設(shè)置為一樣大。構(gòu)造方法:

GridLayout() 建立一個新的GridLayout布局,默認值為一行一列 GridLayout(introws,intcols)建立一個指定了幾行幾列的GridLayout布局 GridLayout(introws,intcols,inthgap,intvgap) 建立一個指定了幾行幾列GridLayout 布局,并設(shè)置組件的垂直和水平間距21精選pptGridLayout布局 GridLayout比FlowBorderLayout布局 BorderLayout將版面劃分成東、西、南、北、中五個區(qū)域,大家可以將組件放在這五個區(qū)域中的某個區(qū)域里。要使用BorderLayout,只要在容器中設(shè)置使用BorderLayout這種版面管理即可。構(gòu)造方法: BorderLayout()建立一個組件間沒有間距的BorderLayout布局 BorderLayout(inthgap,intvgap)建立一個組件間有間距的BorderLayout 布局。22精選pptBorderLayout布局 BorderLayout將 另外還有兩種布局CardLayout布局和GridBagLayout布局。 CardLayout布局的功能就如同你將很多張卡片疊在一起,你一次只能看到其中一張卡片,但是你可以任意抽出其中一張卡片來看。 GridBagLayout布局是使用網(wǎng)格單元,指定組件的相對布置,即在一個網(wǎng)格的單元中指定它們的位置,每個組件的網(wǎng)格單元的大小可以不同,每個網(wǎng)格的每一行可以有不同的列數(shù)。 由于這CardLayout布局不太常用,因此就不做詳細介紹了,有興趣的同學可以研究一下。23精選ppt 另外還有兩種布局CardLayout布局和GridBag事件JAVA事件的處理機制 大家可能已經(jīng)注意到了上面的程序中,按下按鈕后不會觸發(fā)任何事件。如果你想在按下按鈕時,實現(xiàn)一定的功能,就必須進入程序內(nèi)部,編寫用于決定要發(fā)生什么事情的代碼。在這里就用到了JAVA的事件處理機制。在事件的處理過程中,主要涉及三個對象:Event-事件EventSource-事件源Eventhandler-事件處理者用戶對界面操作在JAVA語言上的描述,以類的形式出現(xiàn),例如鍵盤操作對應的事件類是KeyEvent事件發(fā)生的場所,通常就是各個組件,例如按鈕Button接收事件并對其進行處理的對象24精選ppt事件JAVA事件的處理機制Event-事件EventS JAVA的事件處理是采取“委派事件模型”(也稱為觀察者模式),所謂的“委派事件模型”是指當事件發(fā)生時,產(chǎn)生事件的對象(即事件源)會把此信息傳給“事件聆聽者”(處理的一種方式),而這里所指的“事件對象”事實上就是java.awt.event事件類庫里某個類所創(chuàng)建的對象,我們暫且把它稱為“事件對象”。25精選ppt JAVA的事件處理是采取“委派事件模型”(也稱為觀察者模按鈕事件importjava.awt.*; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; publicclassButtonEventAppextendsFrame{ ButtonmyButton=newButton("測試按鈕"); publicButtonEventApp(){ super("Button事件示例"); myButton.addActionListener(newMyEvent()); this.add(myButton); setSize(160,120); show(); } publicstaticvoidmain(Stringargs[]){ newButtonEventApp(); } } classMyEventimplementsActionListener{ publicvoidactionPerformed(ActionEvente) { System.out.println("Button事件處理測試..."); } }對按鈕myButton進行事件注冊用內(nèi)部類實現(xiàn)ActionListener接口編寫按鈕的執(zhí)行任務26精選ppt按鈕事件importjava.awt.*;對按鈕myBu按鈕事件程序運行結(jié)果運行效果如下:點擊“測試按鈕”按鈕此處我們雖然只是簡單的輸出了一個字符串,同學們可以試著讓程序在點擊按鈕的時候做一些其他的事,比如取出文本域中的數(shù)字進行加減運算等。27精選ppt按鈕事件程序運行結(jié)果運行效果如下:點擊“測試按鈕”按鈕窗體事件 用戶改變窗口的狀態(tài),比如最大化、最小化或者關(guān)閉等,會觸發(fā)窗體事件,窗體事件的構(gòu)造方法是“WindowEvent(Windowsource,intid)”,其中“source”表示觸發(fā)此事件的窗體,“id”則表示事件代碼。 如下列舉了窗體事件代碼常量以及它們的含義。WINDOW_CLOSED:表示窗口被關(guān)閉WINDOW_CLOSING:表示窗口處于關(guān)閉過程中WINDOW_DEICONIFIED:表示由最小化恢復為原來大小WINDOW_ICONIFIED:表示窗口被最小化 可以通過“getWindow()”方法或者“getSource(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論