版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java言語程序設計劉玉江liuyujiang1126n概述n事件處置n根本控制組件n規(guī)劃設計n常用容器組件第五章 圖形用戶界面設計概述n圖形用戶界面(Graphics User Interface)n圖形用戶界面:由菜單、按鈕等圖形界面組件構成,用戶經過鍵盤和鼠標與程序進展交互。nGUI組件:是圖形用戶界面的根本元素,可實現用戶與程序交互。n容器:組件放置的地方,我們可以在容器中放入一些GUI組件,如按鈕、菜單等,從而組成一個人機界面非常友好的程序。(包括:Applet、Panel、Frame等容器container圖形用戶界面GUI文本框標簽按鈕GUI組件圖形用戶界面的構成n什么是組件?n
2、構成圖形用戶界面的元素,拿來即用n用圖形表示(能在屏幕上顯示,能和用戶進展交互)nButton、Checkbox、Scrollbar、Choice、Frame圖形用戶界面的構成n一些特定的Java類njava.awt包njavax.swing包n容器組件(Container): 可包含其他組件n頂層容器: Applet, Dialog, Frame, Windown普通用途容器: Panel, ScrollPanen特定用途容器: InternalFramen非容器組件: 必需求包含在容器中nButton, Checkbox, Scrollbar, Choice, Canvas圖形用戶界面的實
3、現(P192)n選取組件n設計規(guī)劃n呼應事件n運用原那么nSwing比AWT提供更全面、更豐富的圖形界面設計功能nJava 2平臺支持AWT組件,但鼓勵用Swing組件n主要講述AWT和Swing的圖形界面設計圖形用戶界面的實現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 JLabel(Hello!); f
4、.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(A
5、WT1); 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); n概述n事件處置n根本控制組件n規(guī)劃設計n常用容器組件第五章 圖形用戶界面設計事件處置n界面設計 (靜態(tài))n界面動起來 !n經過事件觸發(fā)對象的呼應機制n事件? 鼠標挪動、鼠標點擊、鍵盤鍵入等n事件處置機制n事件源
6、n事件對象n事件監(jiān)聽者n如何實現n實現(implements)事件監(jiān)聽接口(interface)產生一個監(jiān)聽器對象(Listener)n監(jiān)聽誰? 將該監(jiān)聽器對象注冊到組件對象中n編寫事件呼應方法3.實現事件處置的步驟 1)定義類實現事件監(jiān)聽器接口 2)將產惹事件的組件注冊為事件監(jiān)聽器 3) 實現處置事件接口的籠統(tǒng)方法 要建立處置事件的類,需求闡明類實現事件監(jiān)聽器接口,闡明格式如下: public class 類名 implements 監(jiān)聽器接口名列表例如,ActionListener是動作事件監(jiān)聽器接口,定義如下: interface ActionListener public abstra
7、ct void actionPerformed(ActionEvent e); 假設名為Myclass的類要處置動作事件,就要定義Myclass類實現ActionListener接口。1)定義類實現事件監(jiān)聽器接口 假設希望組件產惹事件時可以得到呼應,應將產惹事件的組件注冊為事件監(jiān)聽器,注冊的語句如下: 組件名addXXXListener(實現事件監(jiān)聽器接口的類對象); XXX代表事件類型。例如,假設Myclass是實現ActionListener接口的類。將Myclass類對象注冊為事件監(jiān)聽器,對應語句如下: 組件名addActionListener(new Myclass();也可以運用關鍵
8、字this。例如,組件名addActionListener(this)。2)將產惹事件的組件注冊為事件監(jiān)聽器 在實現事件監(jiān)聽器接口的類中為籠統(tǒng)方法編寫代碼。例如,在Myclass類中為ActionListener接口的actionPerformed()方法編寫語句。 public void actionPerformed(ActionEvent e) 填寫處置動作事件的語句3)實現處置事件接口的籠統(tǒng)方法 以按鈕類為例闡明相應的事件處置過程(P197)Button button1 = new Button(提交);button1.addActionListener(this); /在init()
9、中實現監(jiān)聽器對象this必需實現相應的接口,來呼應事件:public class C1 implements ActionListener.public void init() . button1.addActionListener(this);public void actionPerformed(ActionEvent event) 相應的呼應操作第五章 圖形用戶界面設計n概述n事件處置n根本控制組件n規(guī)劃設計n常用容器組件例:import java.applet.Applet; import java.awt.*;import java.awt.event.*;public class
10、Mouse1 extends Applet implements MouseListenerint 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(坐標值:+Integer.toString(x)+,+Integer.toString(y);public void mouseClicked(MouseEvent e)public v
11、oid mouseEntered(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseExited(MouseEvent e)AWT組件 (java.awt.*)Component Button Canvas ChoiceCheckBoxLabelListTextComponentScrollbarTextFieldTextArea ContainerScrollPaneFrameFileDialogPanelWindowDialogApplet根本控制組件n運用步驟:n創(chuàng)建根本控制組件類的對象,指定對象屬性
12、;n將組件對象參與到制定容器的適當位置(規(guī)劃設計);n創(chuàng)建事件對象的監(jiān)聽者。nSwing組件(javax.swing.*)按鈕和標簽n按鈕(Button)n創(chuàng)建按鈕npublic Button()npublic Button(String label)n常用方法npublic String getLabel()npublic void setLabel(String label)npublic void setActionCommand(String s)npublic String getActionCommand(String s)n事件呼應njava.awt.event.ActionLi
13、stener(接口)nvoid actionPerformed(ActionEvent e)按鈕和標簽n標簽(Label)n創(chuàng)建標簽npublic Label()npublic Label(String s)npublic Label(String s, int alignment)n常用方法npublic String getText()npublic void setText(String s)npublic void setAlignment(int alignment)n事件呼應n不引發(fā)事件運用標簽的例子import java.awt.*;import java.applet.*;pu
14、blic 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);運用
15、標簽的例子文本框和文本區(qū)n文本框(TextField)nTextComponent類的子類n創(chuàng)建文本框npublic TextField()npublic TextField(int size)npublic TextField(String s)npublic TextField(String s, int size)n常用方法npublic void setText(String s)npublic String getText()npublic void setEchochar(char c)npublic void setEditable(boolean b)n事件呼應njava.aw
16、t.event.TextListener(接口)njava.awt.event.ActionListener(接口)文本框和文本區(qū)n文本區(qū)(TextArea)nTextComponent類的子類n創(chuàng)建文本區(qū)npublic TextArea()npublic TextArea(String s)npublic TextArea(int rows, int columns)npublic TextArea(String s, int rows, int columns)npublic TextArea(String s, int rows, int columns, int scrollbars)
17、nSCROLLBARS_BOTH, SCROLLBARS_NONEnSCROLLBARS_VERTICAL_ONLYnSCROLLBARS_HORIZONTAL_ONLYn常用方法npublic void append(String s)npublic void insert(String s, int index)npubilc void replaceRange(String s, int start, int end)n事件呼應njava.awt.event.TextListener(接口)nvoid textValueChanged(TextEvent e)運用文本框的例子import
18、 java.awt.*;import java.awt.event.*;import java.applet.*;public class Exam5_4 extends Applet implements ActionListenerLabel lab1, lab2, lab3;TextField text1, text2, text3;String str; int i; float f;public void init() lab1 = new Label(“輸入整形數: ); add(lab1);text1 = new TextField(“0, 30);text1.addAction
19、Listener(this); add(text1);lab2 = new Label(“輸入浮點數: ); 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);運用文本框的例子public void actionPerformed(ActionEvent e
20、) i = Integer.parseInt(text1.getText();f = (Float.valueOf(text2.getText().floatValue();str = text3.getText();repaint();public void paint(Graphics g) g.drawString(“整形數= + i, 20, 120);g.drawString(“浮點數= + f, 20, 150);g.drawString(“字符串= + str, 20, 180);單復選框和列表n復選框(Checkbox)n創(chuàng)建復選框npublic Checkbox()npubl
21、ic Checkbox(String s)npublic TextField(String s, boolean state)n常用方法npublic boolean getState()npublic void setState(boolean b)npublic void setLabel(String s)npublic String getLabel()n事件呼應njava.awt.event.ItemListener(接口)nvoid itemStateChanged(ItemEvent e)單復選框和列表n單項選擇按鈕組(CheckboxGroup)n創(chuàng)建單項選擇按鈕組npubli
22、c Checkbox(String label, boolean state, CheckboxGroup group)npublic Checkbox(String label, CheckboxGroup group, boolean state)n常用方法n與復選框一樣n事件呼應n與復選框一樣單復選框和列表n列表(List)n創(chuàng)建列表npublic List()npublic List(int n)npublic List(int n, boolean b)n常用方法npublic void add(String s)npublic void add(String s, int n)np
23、ublic void remove(int n)npublic void removeAll()npublic int getSelectedIndex()npublic String getSelectedItem()n事件呼應njava.awt.event.ItemListener(接口)njava.awt.event.ActionListener(接口)下拉列表和滾動條n下拉列表(Choice)n創(chuàng)建下拉列表npublic Choice()n常用方法npublic int getSelectedIndex()npublic String getSelectedItem()npublic
24、void select(int index)npublic void select(String item)npublic void add(String s)npublic void add(String s, int index)npublic void remove(int index)npublic void remove(String item)npublic void removeAll()n事件呼應njava.awt.event.ItemListener(接口)下拉列表和滾動條n滾動條(Scrollbar)n創(chuàng)建滾動條npublic Scrollbar(int orientati
25、on, int value, int visible, int minimum, int maximum)n常用方法npublic void setUnitIncrement(int n)npublic void setBlockIncrement(int n)npublic int getUnitIncrement()npublic int getBlockIncrement()npublic int getValue()n事件呼應njava.awt.event.AdjustmentListener(接口)nvoid adjustmentValueChanged(AdjustmentEven
26、t e)運用下拉列表的例子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);運用以下列表例子畫布n畫布(Canvas)n創(chuàng)建畫布npublic Canvas()n常用方法npublic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務信息公開制度
- GB∕T33000-2025 大中型企業(yè)安全生產標準化管理體系要求要素“LS-PDCA運行模式”應用操作清單(雷澤佳編制-2026A0)
- 護理評估中的持續(xù)改進
- 2026山東濟南市屬事業(yè)單位招聘初級綜合類崗位人員111人參考考試題庫附答案解析
- 2026福建師范大學實驗幼兒園招聘勞務派遣人員1人參考考試題庫附答案解析
- 2026江西吉安吉州區(qū)興泰科技股份有限公司向社會招募就業(yè)見習人員參考考試題庫附答案解析
- 河南投資集團2026屆校園備考考試試題附答案解析
- 2026廣西來賓市象州縣第四幼兒園招聘幼兒園教師崗位見習生2人備考考試題庫附答案解析
- 2026年安陽市龍安區(qū)人社局招聘社區(qū)人社服務專員(原人社協管員)8人備考考試試題附答案解析
- 2026中信銀行成都分行公司客戶經理社會招聘參考考試題庫附答案解析
- 2026年鄉(xiāng)村醫(yī)生傳染病考試題含答案
- 金屬廠生產制度
- 2026安徽淮北市特種設備監(jiān)督檢驗中心招聘專業(yè)技術人員4人參考題庫及答案1套
- 新零售模式下人才培養(yǎng)方案
- 上海市徐匯區(qū)2026屆初三一?;瘜W試題(含答案)
- 預中標協議書電子版
- 龜的解剖課件
- 2023年上海鐵路局人員招聘筆試題庫含答案解析
- 質量源于設計課件
- 2023屆高考語文復習-散文專題訓練-題目如何統(tǒng)攝全文(含答案)
- 馬鞍山經濟技術開發(fā)區(qū)建設投資有限公司馬鞍山城鎮(zhèn)南部污水處理廠擴建工程項目環(huán)境影響報告書
評論
0/150
提交評論