




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1,Java語言程序設(shè)計(jì),劉玉江 ,2,概述 事件處理 基本控制組件 布局設(shè)計(jì) 常用容器組件,第五章 圖形用戶界面設(shè)計(jì),3,概述,圖形用戶界面(Graphics User Interface) 圖形用戶界面:由菜單、按鈕等圖形界面組件構(gòu)成,用戶通過鍵盤和鼠標(biāo)與程序進(jìn)行交互。 GUI組件:是圖形用戶界面的基本元素,可實(shí)現(xiàn)用戶與程序交互。 容器:組件放置的地方,我們可以在容器中放入一些GUI組件,如按鈕、菜單等,從而組成一個(gè)人機(jī)界面非常友好的程序。(包括:Applet、Panel、Frame等),4,容器(container),圖形用戶界面(GUI),5,圖形用戶界面的構(gòu)成,什么是組件? 構(gòu)成圖形用戶界面的元素,拿來即用 用圖形表示(能在屏幕上顯示,能和用戶進(jìn)行交互) Button、Checkbox、Scrollbar、Choice、Frame,6,圖形用戶界面的構(gòu)成,一些特定的Java類 java.awt包 javax.swing包 容器組件(Container): 可包含其他組件 頂層容器: Applet, Dialog, Frame, Window 一般用途容器: Panel, ScrollPane 特定用途容器: InternalFrame 非容器組件: 必須要包含在容器中 Button, Checkbox, Scrollbar, Choice, Canvas,7,圖形用戶界面的實(shí)現(xiàn)(P192),選取組件 設(shè)計(jì)布局 響應(yīng)事件 應(yīng)用原則 Swing比AWT提供更全面、更豐富的圖形界面設(shè)計(jì)功能 Java 2平臺(tái)支持AWT組件,但鼓勵(lì)用Swing組件 主要講述AWT和Swing的圖形界面設(shè)計(jì),8,圖形用戶界面的實(shí)現(xiàn),簡單實(shí)例,import javax.swing.*; import java.awt.event.*; public class HelloWorldSwing public static void main(String args) JFrame f = new JFrame(“Swing1“); JLabel label = new 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) Frame 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); ,9,概述 事件處理 基本控制組件 布局設(shè)計(jì) 常用容器組件,第五章 圖形用戶界面設(shè)計(jì),10,事件處理,界面設(shè)計(jì) (靜態(tài)) 界面動(dòng)起來 ! 通過事件觸發(fā)對(duì)象的響應(yīng)機(jī)制 事件? 鼠標(biāo)移動(dòng)、鼠標(biāo)點(diǎn)擊、鍵盤鍵入等 事件處理機(jī)制 事件源 事件對(duì)象 事件監(jiān)聽者 如何實(shí)現(xiàn) 實(shí)現(xiàn)(implements)事件監(jiān)聽接口(interface)產(chǎn)生一個(gè)監(jiān)聽器對(duì)象(Listener) 監(jiān)聽誰? 將該監(jiān)聽器對(duì)象注冊到組件對(duì)象中 編寫事件響應(yīng)方法,11,3.實(shí)現(xiàn)事件處理的步驟,1)定義類實(shí)現(xiàn)事件監(jiān)聽器接口 2)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器 3) 實(shí)現(xiàn)處理事件接口的抽象方法,12,要建立處理事件的類,需要說明類實(shí)現(xiàn)事件監(jiān)聽器接口,說明格式如下: public class 類名 implements 監(jiān)聽器接口名列表 例如,ActionListener是動(dòng)作事件監(jiān)聽器接口,定義如下: interface ActionListener public abstract void actionPerformed(ActionEvent e); 如果名為Myclass的類要處理動(dòng)作事件,就要定義Myclass類實(shí)現(xiàn)ActionListener接口。,1)定義類實(shí)現(xiàn)事件監(jiān)聽器接口,13,如果希望組件產(chǎn)生事件時(shí)能夠得到響應(yīng),應(yīng)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器,注冊的語句如下: 組件名addXXXListener(實(shí)現(xiàn)事件監(jiān)聽器接口的類對(duì)象); XXX代表事件類型。 例如,假設(shè)Myclass是實(shí)現(xiàn)ActionListener接口的類。將Myclass類對(duì)象注冊為事件監(jiān)聽器,對(duì)應(yīng)語句如下: 組件名addActionListener(new Myclass(); 也可以使用關(guān)鍵字this。 例如,組件名addActionListener(this)。,2)將產(chǎn)生事件的組件注冊為事件監(jiān)聽器,14,在實(shí)現(xiàn)事件監(jiān)聽器接口的類中為抽象方法編寫代碼。 例如,在Myclass類中為ActionListener接口的actionPerformed()方法編寫語句。 public void actionPerformed(ActionEvent e) 填寫處理動(dòng)作事件的語句,3)實(shí)現(xiàn)處理事件接口的抽象方法,15,以按鈕類為例說明相應(yīng)的事件處理過程(P197) Button button1 = new Button(”提交”); button1.addActionListener(this); /在init()中實(shí)現(xiàn) 監(jiān)聽器對(duì)象this必須實(shí)現(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)操作 ,16,第五章 圖形用戶界面設(shè)計(jì),概述 事件處理 基本控制組件 布局設(shè)計(jì) 常用容器組件,17,例:import 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(“坐標(biāo)值:“+Integer.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) ,18,AWT組件 (java.awt.*),Component,Button,Canvas,Choice,CheckBox,Label,List,TextComponent,Scrollbar,TextField,TextArea,Container,ScrollPane,Frame,FileDialog,Panel,Window,Dialog,Applet,19,基本控制組件,使用步驟: 創(chuàng)建基本控制組件類的對(duì)象,指定對(duì)象屬性; 將組件對(duì)象加入到制定容器的適當(dāng)位置(布局設(shè)計(jì)); 創(chuàng)建事件對(duì)象的監(jiān)聽者。 Swing組件(javax.swing.*),20,按鈕和標(biāo)簽,按鈕(Button) 創(chuàng)建按鈕 public Button() public Button(String label) 常用方法 public String getLabel() public void setLabel(String label) public void setActionCommand(String s) public String getActionCommand(String s) 事件響應(yīng) java.awt.event.ActionListener(接口) void actionPerformed(ActionEvent e),21,按鈕和標(biāo)簽,標(biāo)簽(Label) 創(chuàng)建標(biāo)簽 public Label() public Label(String s) public Label(String s, int alignment) 常用方法 public String getText() public void setText(String s) public void setAlignment(int alignment) 事件響應(yīng) 不引發(fā)事件,22,使用標(biāo)簽的例子,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(Color.red); lab2.setBackground(Color.green); text1 = new TextField(10); text2 = new TextField(10); add(lab1); add(text1); add(lab2); add(text2); ,23,使用標(biāo)簽的例子,24,文本框和文本區(qū),文本框(TextField) TextComponent類的子類 創(chuàng)建文本框 public TextField() public TextField(int size) public TextField(String s) public TextField(String 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(接口),25,文本框和文本區(qū),文本區(qū)(TextArea) TextComponent類的子類 創(chuàng)建文本區(qū) public TextArea() public TextArea(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(String s, int index) pubilc void replaceRange(String s, int start, int end) 事件響應(yīng) java.awt.event.TextListener(接口) void textValueChanged(TextEvent e),26,使用文本框的例子,import java.awt.*; import java.awt.event.*; import java.applet.*; public class Exam5_4 extends Applet implements ActionListener Label lab1, 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(“輸入浮點(diǎn)數(shù): ”); add(lab2); text2 = new TextField(“0.0”, 30); text2.addActionListener(this); add(text2); lab3 = new Label(“輸入字符串: ”); add(lab3); text3 = new TextField(“0.0”, 30); text3.addActionListener(this); add(text3); ,27,使用文本框的例子,public void actionPerformed(ActionEvent e) i = Integer.parseInt(text1.getText(); f = (Float.valueOf(text2.getText().floatValue(); str = text3.getText(); repaint(); public void paint(Graphics g) g.drawString(“整形數(shù)=” + i, 20, 120); g.drawString(“浮點(diǎn)數(shù)=” + f, 20, 150); g.drawString(“字符串=” + str, 20, 180); ,28,單復(fù)選框和列表,復(fù)選框(Checkbox) 創(chuàng)建復(fù)選框 public Checkbox() public Checkbox(String s) public TextField(String s, boolean state) 常用方法 public boolean getState() public void setState(boolean b) public void setLabel(String s) public String getLabel() 事件響應(yīng) java.awt.event.ItemListener(接口) void itemStateChanged(ItemEvent e),29,單復(fù)選框和列表,單選按鈕組(CheckboxGroup) 創(chuàng)建單選按鈕組 public Checkbox(String label, boolean state, CheckboxGroup group) public Checkbox(String label, CheckboxGroup group, boolean state) 常用方法 與復(fù)選框相同 事件響應(yīng) 與復(fù)選框相同,30,單復(fù)選框和列表,列表(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() public String getSelectedItem() 事件響應(yīng) java.awt.event.ItemListener(接口) java.awt.event.ActionListener(接口),31,下拉列表和滾動(dòng)條,下拉列表(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 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(接口),32,下拉列表和滾動(dòng)條,滾動(dòng)條(Scrollbar) 創(chuàng)建滾動(dòng)條 public Scrollbar(int orientation, int value, int visible, int minimum, int maximum) 常用方法 public void setUnitIncrement(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),33,使用下拉列表的例子,import java.awt.*; import java.awt.event.*; import java.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); ,34,使用下列列表例子,35,畫布,畫布(Canvas) 創(chuàng)建畫布 public Canvas() 常用方法 public void setSize
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租房單間布局改造方案
- 公司新媒體管理制度
- 寧夏美術(shù)考試題庫及答案
- 數(shù)學(xué)新課標(biāo)考試題及答案
- 2026版《全品高考》選考復(fù)習(xí)方案生物805 第24講 體液調(diào)節(jié)含答案
- 生豬屠宰廠場管理方案
- 安全生產(chǎn)管理方案
- 健康餐創(chuàng)新創(chuàng)業(yè):從理念到實(shí)踐
- 萍鄉(xiāng)客服面試題及答案
- 天津幼兒面試題及答案
- 2025臺(tái)州市椒江區(qū)輔警考試試卷真題
- 中學(xué)生零食消費(fèi)情況調(diào)查與分析
- 國開本科《管理英語4》機(jī)考總題庫及答案
- 軟裝行業(yè)競品分析報(bào)告
- 公司收購公司協(xié)議書
- 基于移動(dòng)端的互聯(lián)網(wǎng)金融服務(wù)創(chuàng)新研究
- T∕CACM 024-2017 中醫(yī)臨床實(shí)踐指南 穴位埋線減肥
- GB 45189-2025氰化物安全生產(chǎn)管理規(guī)范
- TWAA 011-2024 WLAN工業(yè)終端性能技術(shù)要求
- 新科粵版九年級(jí)上冊初中化學(xué)全冊課前預(yù)習(xí)單
- 2025-2030年中國抗菌肽行業(yè)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
評(píng)論
0/150
提交評(píng)論