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

下載本文檔

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

文檔簡介

第5講 Java的圖形用戶界面,用戶界面:用戶與計算機進行交互的渠道,人(眼睛和手指)和計算機(硬件和軟件)的通信,協(xié)同完成一定任務(wù)。與計算機輸入/輸出過程都相關(guān)。 人的主體參與:接受信息、思考、決策、發(fā)出命令。 計算機軟硬件參與的工作:進一步明確所要執(zhí)行命令,執(zhí)行計算,反饋信息。 命令行式全字符用戶界面 圖形用戶界面:讓計算機變得更加容易使用,圖形用戶界面,面向?qū)ο蟮膱D形用戶界面:基于“面向?qū)ο蟆钡乃枷牖ハ嘟粨Q信息,即盡可能在屏幕上用形象的圖標和窗口等來代表有用的資源和可啟用的對象。 圖形界面對象: 圖標(Icon) 窗口(Window) 菜單(Menu)/菜單項(Menu Item) 按鈕(Button)、文本框(Label)、列表框(List) ,圖形用戶界面(Graphical User Interface,GUI),1、AWT(Abstract Window Toolkit)組件,在Java中, 上述對象都存在于抽象窗口工具包AWT中。 圖形用戶界面有哪些基本組件類? 層次關(guān)系是怎樣的? 屏幕上如何布局? 如何響應用戶事件?,1、使用AWT(Abstract Window Toolkit)組件,java.awt及相關(guān)包中包含了一個完整的類集以支持GUI程序的設(shè)計,其中的類及相互關(guān)系可以用下圖來描述(重量級構(gòu)件):,Component類 java.awt包中最核心的類就是Component類,它是構(gòu)成Java圖形用戶界面的基礎(chǔ),大部分組件都是由該類派生出來的。 Component類是一個抽象類,其中定義了組件所具有的一般功能:基本的繪畫支持(paint, repaint, update等)、字體和顏色等外形控制(setFont, SetForeground等)、大小和位置控制(SetSize, SetLocation等)、圖象處理(實現(xiàn)接口ImageObserver)以及組件狀態(tài)控制(SetEnable, isEnable, isVisible, isValid等) ,。 常見的組件包括:Button, Checkbox, CheckboxGroup, Choice, Label, List, Canvas, TextComponent, Scrollbar,TextArea, TextField等。,1、AWT(Abstract Window Toolkit)組件,1、AWT(Abstract Window Toolkit)組件,Container類 Container類是由Component類派生出來的一種特殊類,用來表示各種GUI組件的容器,其主要功能包括: 組件的管理:方法add()可以向其中添加一個組件,remove()刪除其中的一個組件, 布局管理:每個Container類都和一個布局管理器相聯(lián),以確定其中組件的布局。 Container類可以通過setLayout()方法設(shè)置某種布局方式。 常見的Container類有:Frame, Panel, Applet等。,1、AWT組件之容器類Container,Container類的定義: public abstract class Container extends Components protected Container() ; public void add(Component comp) ; public void add(Component comp, Object constraints) ; public Insets getInsets() ; public void setLayout(LayoutManager mgr) ; public void validate() ; public Dimension getPreferredsize() ; public voind paint(Graphics g) ; ,1、AWT組件之容器類Container,AWT組件之Window類,Window類表示一個沒有邊界和菜單的最高層的窗口,可以包含awt的其他組件,初始化時,窗口是不可見的。 public class Window extends Container public Window(Frame parent) ; public void pack() ; public void show() ; public void toFront() ; public void toBack() ; public void addWindowListener(WindowListener l) ; public void removeWindowListener(WindowListener l) ; ,AWT組件之Frame類,Frame是包括標題、菜單、類似于文本區(qū)的區(qū)域和按鈕的圖形用戶界面,是一個圖形窗口。 public class Frame extends Window implements MenuContainer public Frame() ; public Frame(String title) ; public String getTitle() ; public void setTitle(String title) ; public void setMenuBar(Menubar mb) ; public void dispose() ; ,AWT組件之Frame類,創(chuàng)建一個Frame MyFrame.java import java.awt.*; public class MyFrame extends Frame public static void main(String args) Frame fr = new Frame(“Frame Test“); fr.setSize(500,500); fr.setBackground(Color.blue); fr.setVisible(true); ,AWT組件之Frame中添加其他組件Button,按鈕(Button) 可點擊的用戶界面組件,當組件被點擊是,產(chǎn)生AcitonEvent事件,可以用ActionListener來監(jiān)聽。 構(gòu)造:Button, Button(String label) 方法: getlabel() 獲取標簽 setLabel(String label) addActionListener(ActionListener l) removeActionListener(ActionListener l) MyFirstButton.java, MySecondButton.java,AWT組件之Frame中添加其他組件TextField,單行文本區(qū)(TextField)TextComponent 只能顯示一行信息,當按回車鍵后,會產(chǎn)生ActionEvent事件,可以用ActionListener來監(jiān)聽。 構(gòu)造:TextField, TextField(String text), TextField(int columns), TextField(String text, int columns) 方法: setText(String text) getText() addActionListener(ActionListener l) removeActionListener(ActionListener l) MyFirstTF.java,AWT組件之Frame中添加其他組件TextArea,文本輸入?yún)^(qū)(TextArea) TextComponent 可以顯示多行信息,并且有滾動條支持。按回車鍵后并不產(chǎn)生事件,如果要判斷是否完成輸入,需要用其他方法,如用一個結(jié)束按鈕。 構(gòu)造:TextArea, TextArea(String text), TextArea(int rows, int columns), TextArea(String text, int rows, int columns) 方法: setText(String text), getText(), append(String text) addActionListener(ActionListener l) removeActionListener(ActionListener l) MyFirstTA.java,AWT組件之Frame中添加其他組件,Label List Scrollbar Choice Checkbox Menu OtherComp.java,5、AWT中的各種組件,復選框(Checkbox) 提供簡單的“on/off”開關(guān),同時旁邊還可以顯示說明信息。當復選框狀態(tài)發(fā)生變化時,會產(chǎn)生ItemEvent事件,可以用ItemListener來監(jiān)聽。 復選框組(CheckboxGroup)單選框(Radio Button) 當多個復選框組成一組時,就形成了單選框。復選框組中的復選框之間是相互關(guān)聯(lián)的,每次有且只有一個處于選中狀態(tài)。 下拉式菜單(Choice) 在下拉式菜單中有多個選項,但每次只能選擇一項。當選擇發(fā)生時,會產(chǎn)生ItemEvent事件,可以用ItemListener來監(jiān)聽。 標簽(Label) 靜態(tài)文字,多用于指示信息,無事件。 列表(List) 列表提供了很多文本選項,可以同時看到多項,也有滾動條的支持,并且可以單選或多選。當用戶單選或多選時,會產(chǎn)生ItemEvent事件。,5、AWT中的各種組件,/Checkbox add( new Chebox(“one”, null, true) ); add( new Chebox(“two”, null, false) ); add( new Chebox(“three”, null, false) );,/CheckboxGroup CheckboxGroup cbg = new CheckboxGroup(); add( new Chebox(“one”, cbg, true) ); add( new Chebox(“two”, cbg, false) ); add( new Chebox(“three”, cbg, false) );,/Choice Choice ch = new Choice(); ch.add( “Green” ); ch.add( “Red” ); ch.add( “Blue” );,/List List lst = new List(4, false); lst.add(“Mercury“); lst.add(“Venus“); lst.add(“Earth“); lst.add(“JavaSoft“); lst.add(“Mars“); lst.add(“Neptune“); add(lst);,5、AWT中的各種組件,滾動條(Scrollbar) 滾動條一般不單獨使用,它通常與另一個組件聯(lián)合使用,用以指示另一個組件的變化情況。一般情況下,它可以用ScrollPane代替。 Scrollbar slider1=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 25); add(slider1); Scrollbar slider2=new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 25); add(slider2);,5、AWT中的各種組件,菜單 菜單與其他組件不同,無法直接添加到容器的某一位置,也無法用布局管理器對其加以控制,它由以下概念支撐: 菜單條(MenuBar) 只能添加到Frame中(用setMenuBar()),作為擺放菜單的容器。 菜單(Menu) 菜單項容器,負責顯示并控制其中的菜單項。它支持菜單嵌套。 菜單項(MenuItem) 真正的動作,可以用ActionListener監(jiān)聽其事件(ActionEvent)。 復選框菜單項(CheckboxMenuItem) 真正的動作, 可以用ItemListener監(jiān)聽其事件(ItemEvent)。 彈出式菜單(PopupMenu) 與菜單(Menu)相似,也是菜單項容器,通過其show()方法來顯示菜單項。,5、AWT中的各種組件,MenuBar mb; Menu m; MenuItem mi1, mi2; CheckboxMenuItem mi3; /Build the menu bar. mb = new MenuBar(); setMenuBar(mb); /Build first menu in the menu bar. m = new Menu(“Menu 1“, true); mb.add(m); mi1 = new MenuItem(“Menu Item 1“); m.add(mi1); mi2 = new MenuItem(“Menu Item 2“); m.add(mi2); mi3 = new CheckboxMenuItem(“Menu Item 3“); m.add(mi3);,1、使用AWT(Abstract Window Toolkit)組件,Graphics類 Graphics類是所有用來在組件上進行圖形繪制時所使用的圖形環(huán)境上下文的父類,它提供了對組件進行圖形繪制的一般方法的接口,一個Graphics對象中封裝了用來進行圖形繪制時必須得狀態(tài)信息,包括: 要繪制的組件對象 當前顏色 當前字體 當前邏輯點操作的功能(XOR和Paint) 當前XOR方式的替代顏色 ,Graphics類還提供了一系列的方法來繪制幾何圖形、文字、圖象以及動畫: Lines:drawLine() Rectangles:drawRect(), fillRect() 和 clearRect() Raised or lowered rectangles:draw3DRect() 和 fill3DRect() Round-edged rectangles:drawRoundRect() 和 fillRoundRect() Ovals:drawOval() 和 fillOval() Arcs:drawArc() 和 fillArc() Polygons :drawPolygon

溫馨提示

  • 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

提交評論