圖形用戶界面設(shè)計g.ppt_第1頁
圖形用戶界面設(shè)計g.ppt_第2頁
圖形用戶界面設(shè)計g.ppt_第3頁
圖形用戶界面設(shè)計g.ppt_第4頁
圖形用戶界面設(shè)計g.ppt_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、a,1,Java語言程序設(shè)計,劉玉江 ,a,2,概述 事件處理 基本控制組件 布局設(shè)計 常用容器組件,第五章 圖形用戶界面設(shè)計,a,3,概述,圖形用戶界面(Graphics User Interface) 圖形用戶界面:由菜單、按鈕等圖形界面組件構(gòu)成,用戶通過鍵盤和鼠標與程序進行交互。 GUI組件:是圖形用戶界面的基本元素,可實現(xiàn)用戶與程序交互。 容器:組件放置的地方,我們可以在容器中放入一些GUI組件,如按鈕、菜單等,從而組成一個人機界面非常友好的程序。(包括:Applet、Panel、Frame等,a,4,容器(container,圖形用戶界面(GUI,a,5,圖形用戶界面的構(gòu)成,什么是組

2、件? 構(gòu)成圖形用戶界面的元素,拿來即用 用圖形表示(能在屏幕上顯示,能和用戶進行交互) Button、Checkbox、Scrollbar、Choice、Frame,a,6,圖形用戶界面的構(gòu)成,一些特定的Java類 java.awt包 javax.swing包 容器組件(Container): 可包含其他組件 頂層容器: Applet, Dialog, Frame, Window 一般用途容器: Panel, ScrollPane 特定用途容器: InternalFrame 非容器組件: 必須要包含在容器中 Button, Checkbox, Scrollbar, Choice, Canvas

3、,a,7,圖形用戶界面的實現(xiàn)(P192,選取組件 設(shè)計布局 響應(yīng)事件 應(yīng)用原則 Swing比AWT提供更全面、更豐富的圖形界面設(shè)計功能 Java 2平臺支持AWT組件,但鼓勵用Swing組件 主要講述AWT和Swing的圖形界面設(shè)計,a,8,圖形用戶界面的實現(xiàn),簡單實例,import javax.swing.*; import java.awt.event.*; public class HelloWorldSwing public static void main(String args) JFrame f = new JFrame(“Swing1); JLabel label = new

4、JLabel(Hello!); f.getContentPane().add(label); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true);,import java.awt.*; import java.awt.event.*; public class HelloWorldAWT public static void main(String args) Fram

5、e f = new Frame(AWT1); Label label = new Label(Hello!); f.add(label); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true);,a,9,概述 事件處理 基本控制組件 布局設(shè)計 常用容器組件,第五章 圖形用戶界面設(shè)計,a,10,事件處理,界面設(shè)計 (靜態(tài)) 界面動起來 ! 通過事件觸發(fā)對象的響應(yīng)機制 事件?

6、 鼠標移動、鼠標點擊、鍵盤鍵入等 事件處理機制 事件源 事件對象 事件監(jiān)聽者 如何實現(xiàn) 實現(xiàn)(implements)事件監(jiān)聽接口(interface)產(chǎn)生一個監(jiān)聽器對象(Listener) 監(jiān)聽誰? 將該監(jiān)聽器對象注冊到組件對象中 編寫事件響應(yīng)方法,a,11,3.實現(xiàn)事件處理的步驟,1)定義類實現(xiàn)事件監(jiān)聽器接口 2)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器 3) 實現(xiàn)處理事件接口的抽象方法,a,12,要建立處理事件的類,需要說明類實現(xiàn)事件監(jiān)聽器接口,說明格式如下: public class 類名 implements 監(jiān)聽器接口名列表 例如,ActionListener是動作事件監(jiān)聽器接口,定義如下:

7、 interface ActionListener public abstract void actionPerformed(ActionEvent e); 如果名為Myclass的類要處理動作事件,就要定義Myclass類實現(xiàn)ActionListener接口,1)定義類實現(xiàn)事件監(jiān)聽器接口,a,13,如果希望組件產(chǎn)生事件時能夠得到響應(yīng),應(yīng)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器,注冊的語句如下: 組件名addXXXListener(實現(xiàn)事件監(jiān)聽器接口的類對象); XXX代表事件類型。 例如,假設(shè)Myclass是實現(xiàn)ActionListener接口的類。將Myclass類對象注冊為事件監(jiān)聽器,對應(yīng)語句如

8、下: 組件名addActionListener(new Myclass(); 也可以使用關(guān)鍵字this。 例如,組件名addActionListener(this,2)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器,a,14,在實現(xiàn)事件監(jiān)聽器接口的類中為抽象方法編寫代碼。 例如,在Myclass類中為ActionListener接口的actionPerformed()方法編寫語句。 public void actionPerformed(ActionEvent e) 填寫處理動作事件的語句,3)實現(xiàn)處理事件接口的抽象方法,a,15,以按鈕類為例說明相應(yīng)的事件處理過程(P197) Button button1

9、 = new Button(”提交”); button1.addActionListener(this); /在init()中實現(xiàn) 監(jiān)聽器對象this必須實現(xiàn)相應(yīng)的接口,來響應(yīng)事件: public class C1 implements ActionListener . public void init() . button1.addActionListener(this); public void actionPerformed(ActionEvent event) 相應(yīng)的響應(yīng)操作,a,16,第五章 圖形用戶界面設(shè)計,概述 事件處理 基本控制組件 布局設(shè)計 常用容器組件,a,17,例:imp

10、ort java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Mouse1 extends Applet implements MouseListener int x,y;TextField t1=new TextField(12); public void init()add(t1);addMouseListener(this); public void mousePressed(MouseEvent e) x=e.getX();y=e.getY(); t1.setText(坐標值:+Inte

11、ger.toString(x)+,+Integer.toString(y); public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseExited(MouseEvent e),a,18,AWT組件 (java.awt.*,Component,Button,Canvas,Choice,CheckBox,Label,List,TextComponent,Scrollbar,TextFie

12、ld,TextArea,Container,ScrollPane,Frame,FileDialog,Panel,Window,Dialog,Applet,a,19,基本控制組件,使用步驟: 創(chuàng)建基本控制組件類的對象,指定對象屬性; 將組件對象加入到制定容器的適當位置(布局設(shè)計); 創(chuàng)建事件對象的監(jiān)聽者。 Swing組件(javax.swing.*,a,20,按鈕和標簽,按鈕(Button) 創(chuàng)建按鈕 public Button() public Button(String label) 常用方法 public String getLabel() public void setLabel(Str

13、ing label) public void setActionCommand(String s) public String getActionCommand(String s) 事件響應(yīng) java.awt.event.ActionListener(接口) void actionPerformed(ActionEvent e,a,21,按鈕和標簽,標簽(Label) 創(chuàng)建標簽 public Label() public Label(String s) public Label(String s, int alignment) 常用方法 public String getText() publ

14、ic void setText(String s) public void setAlignment(int alignment) 事件響應(yīng) 不引發(fā)事件,a,22,使用標簽的例子,import java.awt.*; import java.applet.*; public class Exam5_3 extends Applet Label lab1, lab2; TextField text1, text2; public void init() lab1 = new Label(“輸入姓名”); lab2 = new Label(“輸入年齡”); lab1.setBackground(C

15、olor.red); lab2.setBackground(Color.green); text1 = new TextField(10); text2 = new TextField(10); add(lab1); add(text1); add(lab2); add(text2);,a,23,使用標簽的例子,a,24,文本框和文本區(qū),文本框(TextField) TextComponent類的子類 創(chuàng)建文本框 public TextField() public TextField(int size) public TextField(String s) public TextField(S

16、tring s, int size) 常用方法 public void setText(String s) public String getText() public void setEchochar(char c) public void setEditable(boolean b) 事件響應(yīng) java.awt.event.TextListener(接口) java.awt.event.ActionListener(接口,a,25,文本框和文本區(qū),文本區(qū)(TextArea) TextComponent類的子類 創(chuàng)建文本區(qū) public TextArea() public TextArea(

17、String s) public TextArea(int rows, int columns) public TextArea(String s, int rows, int columns) public TextArea(String s, int rows, int columns, int scrollbars) SCROLLBARS_BOTH, SCROLLBARS_NONE SCROLLBARS_VERTICAL_ONLY SCROLLBARS_HORIZONTAL_ONLY 常用方法 public void append(String s) public void insert

18、(String s, int index) pubilc void replaceRange(String s, int start, int end) 事件響應(yīng) java.awt.event.TextListener(接口) void textValueChanged(TextEvent e,a,26,使用文本框的例子,import java.awt.*; import java.awt.event.*; import java.applet.*; public class Exam5_4 extends Applet implements ActionListener Label lab1

19、, lab2, lab3; TextField text1, text2, text3; String str; int i; float f; public void init() lab1 = new Label(“輸入整形數(shù): ”); add(lab1); text1 = new TextField(“0”, 30); text1.addActionListener(this); add(text1); lab2 = new Label(“輸入浮點數(shù): ”); add(lab2); text2 = new TextField(“0.0”, 30); text2.addActionList

20、ener(this); add(text2); lab3 = new Label(“輸入字符串: ”); add(lab3); text3 = new TextField(“0.0”, 30); text3.addActionListener(this); add(text3);,a,27,使用文本框的例子,public void actionPerformed(ActionEvent e) i = Integer.parseInt(text1.getText(); f = (Float.valueOf(text2.getText().floatValue(); str = text3.get

21、Text(); repaint(); public void paint(Graphics g) g.drawString(“整形數(shù)=” + i, 20, 120); g.drawString(“浮點數(shù)=” + f, 20, 150); g.drawString(“字符串=” + str, 20, 180);,a,28,單復選框和列表,復選框(Checkbox) 創(chuàng)建復選框 public Checkbox() public Checkbox(String s) public TextField(String s, boolean state) 常用方法 public boolean getSt

22、ate() public void setState(boolean b) public void setLabel(String s) public String getLabel() 事件響應(yīng) java.awt.event.ItemListener(接口) void itemStateChanged(ItemEvent e,a,29,單復選框和列表,單選按鈕組(CheckboxGroup) 創(chuàng)建單選按鈕組 public Checkbox(String label, boolean state, CheckboxGroup group) public Checkbox(String labe

23、l, CheckboxGroup group, boolean state) 常用方法 與復選框相同 事件響應(yīng) 與復選框相同,a,30,單復選框和列表,列表(List) 創(chuàng)建列表 public List() public List(int n) public List(int n, boolean b) 常用方法 public void add(String s) public void add(String s, int n) public void remove(int n) public void removeAll() public int getSelectedIndex() pub

24、lic String getSelectedItem() 事件響應(yīng) java.awt.event.ItemListener(接口) java.awt.event.ActionListener(接口,a,31,下拉列表和滾動條,下拉列表(Choice) 創(chuàng)建下拉列表 public Choice() 常用方法 public int getSelectedIndex() public String getSelectedItem() public void select(int index) public void select(String item) public void add(String

25、 s) public void add(String s, int index) public void remove(int index) public void remove(String item) public void removeAll() 事件響應(yīng) java.awt.event.ItemListener(接口,a,32,下拉列表和滾動條,滾動條(Scrollbar) 創(chuàng)建滾動條 public Scrollbar(int orientation, int value, int visible, int minimum, int maximum) 常用方法 public void s

26、etUnitIncrement(int n) public void setBlockIncrement(int n) public int getUnitIncrement() public int getBlockIncrement() public int getValue() 事件響應(yīng) java.awt.event.AdjustmentListener(接口) void adjustmentValueChanged(AdjustmentEvent e,a,33,使用下拉列表的例子,import java.awt.*; import java.awt.event.*; import ja

27、va.applet.*; public class Exam5_8 extends Applet implements ItemListener Choice cho; TextField text; public void init() text = new TextField(10); cho = new Choice(); cho.add(“red”); cho.add(“yellow”); cho.add(“green”); cho.add(“blue”); add(cho); add(text); cho.addItemListener(this); public void itemStateChanged(ItemEvent e) if(e.getItemSelectable() = cho) String s = cho.getSelectedItem(); text.setText(s);,a,34,使用下列列表例子,a,35,畫布,畫布(Canvas) 創(chuàng)建畫布 public Canvas() 常用方法 public void setSize() publ

溫馨提示

  • 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

提交評論