版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計與系統(tǒng)開發(fā)第13章功能拓展-GUI2驅(qū)動任務(wù)一采用GUI的常用容器和組件設(shè)計如下的程序界面
3目標(biāo)及知識點GUI容器和組件的基本概念11GUI容器和組件的使用2GUI概述GUI(GraphicalUserInterface)的中文意思是圖形用戶界面。允許用戶以圖形的方式與系統(tǒng)進(jìn)行互動。在GUI推廣之前,用戶通常要以文本命令的方式來控制計算機(jī)。GUI直觀的將計算機(jī)的功能呈現(xiàn)給用戶,降低了用戶使用計算機(jī)的門檻。抽象窗口工具包:java.awt:提供基本GUI組件,視覺控制,繪圖工具等java.awt.event:事件處理4AWT和SwingAbstractWindowsToolkit(AWT)是最原始的JavaGUI工具包。AWT的主要優(yōu)點是,它在Java技術(shù)的每個版本上都成為了一種標(biāo)準(zhǔn)配置,包括早期的Web瀏覽器中的Java實現(xiàn)Swing是在AWT組件基礎(chǔ)上構(gòu)建的。所有Swing組件實際上也是AWT的一部分。Swing使用了AWT的事件模型和支持類,例如Colors、Images和Graphics。Swing組件、布局管理器以及事件。5AWT和Swing的常用組件與容器對應(yīng)表功能AWTSwing按鈕ButtonJButton標(biāo)簽LabelJLabel下拉選項框ChoiceJComboBox滾動列表ListJList復(fù)選框(含單選框)CheckboxJCheckBox,JRadioButton文本框(單行)TextFieldJTextField文本框(多行)TextAreaJTextArea菜單MenuJMenu以下為常用容器面板PanelJPanel對話框DialogJDialog窗體框架FrameJFrame6容器AWT組件不能獨立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。類Container是所有容器的父類,常見容器類有窗體(Frame)、對話框(Dialog)、面板(Panel),他們的對象都可以使用方法add()向其中添加組件7窗體框架(Frame)一個Frame對象就是一個常見的窗口,它包含有標(biāo)題欄,可選菜單欄,邊框,關(guān)閉、最大、最小化按鈕常用方法:8【例13-1】創(chuàng)建一個窗體。importjava.awt.*;publicclassexam13_1{ publicstaticvoidmain(Stringargs[]){
Framef=newFrame();//創(chuàng)建一個框架對象f f.setTitle("MyFrame");//設(shè)定框架標(biāo)題 f.setSize(250,200);//設(shè)定框架大小 f.setBackground(Color.green);//設(shè)定背景顏色 f.setVisible(true);//顯示窗體 }}9DialogDialog的對象就是一個對話框,主要用于接受用戶輸入,它只能基于Frame對象或者另一個Dialog對象上進(jìn)行顯示常用方法10【例13-2】創(chuàng)建模式對話框。importjava.awt.*;publicclassexam13_2{publicstaticvoidmain(Stringargs[]) {Framefrm=newFrame("Dialog示例");Dialogdig=newDialog(frm,"對話框",true);//模式對話框frm.setBounds(100,100,200,100);//設(shè)置窗體位置和大小。dig.setBounds(305,100,200,100);//設(shè)置對話框位置和大小frm.setVisible(true);//設(shè)置窗體為可見dig.setVisible(true);//設(shè)置對話框為可見}}11面板(Panel)Panel是最簡單的容器類。和Frame一樣,可以將其他組件放在面板提供的空間內(nèi),這些組件包括其他面板,但是和Frame不同的是,Panel(面板)不能生成對象將窗口顯示出來,它也必須要作為一個組件放到Frame、Window這樣的頂層容器中使用常用方法12【例13-3】演示面板的使用。13importjava.awt.*;publicclassexam13_3extendsFrame{ publicstaticvoidmain(Stringargs[]){ Buttonbtn1=newButton("按鈕1");//按鈕組件 Buttonbtn2=newButton("按鈕2");//按鈕組件 Panelpanel=newPanel();//創(chuàng)建一個面板 Frameframe1=newFrame();//創(chuàng)建一個窗體 frame1.setBounds(100,100,200,200); frame1.setBackground(Color.yellow);//設(shè)置窗體的顏色 frame1.setTitle("AWTFrame測試");//設(shè)置窗體的標(biāo)題 panel.add(btn1);//將按鈕添加到面板中 panel.add(btn2);//將按鈕添加到面板中 frame1.add(panel);//將面板添加到窗體中 frame1.setVisible(true);//將窗體顯現(xiàn)出來 }}組件組件是以圖形方式顯示在屏幕上提供人機(jī)交互的對象按鈕(Button)標(biāo)簽(Label)單行文本輸入框(TextField)多行輸入框(TextArea)下拉選項框(Choice)滾動列表(List)復(fù)選框(Checkbox)復(fù)選框組(CheckboxGroup)菜單(Menu)14按鈕(Button)常用方法:
15【例13-4】演示按鈕的創(chuàng)建16importjava.awt.*;publicclassexam13_4{publicstaticvoidmain(String[]args){ Framef=newFrame();//創(chuàng)建一個窗體 f.setTitle("我的GUI窗口"); f.setLayout(null);//將窗體的布局方式去掉,布局我們后面將會講到 f.setSize(300,300);//設(shè)置窗體的大小 f.setBackground(Color.green);//設(shè)置窗體的顏色 f.setVisible(true);//將窗體顯示出來 //按鈕
Buttonbut1=newButton("確定");//創(chuàng)建一個確定按鈕
Buttonbut2=newButton("取消");//創(chuàng)建一個取消按鈕
but1.setBounds(40,40,80,30);//設(shè)置按鈕在窗體上的位置和大小
but2.setBounds(40,70,80,30);//設(shè)置按鈕在窗體上的位置和大小
f.add(but1);//將按鈕添加到窗體上
f.add(but2);//將按鈕添加到窗體上 }}標(biāo)簽(Label)Label對象是一個用來放置文本的組件常用方法:
17【例13-5】演示標(biāo)簽的使用。18importjava.awt.*;publicclassexam13_5{ publicstaticvoidmain(String[]args){ Framef=newFrame(); f.setTitle("我的GUI窗口"); f.setLayout(null);//不采用布局 f.setSize(200,200); f.setBackground(Color.green); f.setVisible(true); //標(biāo)簽
Labellabel1=newLabel(); Labellabel2=newLabel("歡迎你使用標(biāo)簽!"); Labellabel3=newLabel(“這是一個寫標(biāo)簽的例子”,Label.RIGHT) label1.setBounds(40,20,150,20);//標(biāo)簽的位置和大小 label2.setBounds(40,40,150,20);//標(biāo)簽的位置和大小 label3.setBounds(40,60,150,20);//標(biāo)簽的位置和大小
f.add(label1);//向窗體容器中添加標(biāo)簽
f.add(label2);//向窗體容器中添加標(biāo)簽
f.add(label3);//向窗體容器中添加標(biāo)簽 }}單行文本輸入框(TextField)Label對象是一個用來放置文本的組件常用方法:
19【例13-6】創(chuàng)建文本框。20importjava.awt.*;publicclassexam13_5{publicstaticvoidmain(Stringargs[]) {
Frameframe=newFrame("登錄對話框");//創(chuàng)建Frame
frame.setLayout(null);//指定布局管理器,關(guān)于布局后面我們將專題解
frame.setSize(200,150);
frame.setVisible(true);
Labellblid=newLabel("ID:",Label.CENTER);//居中對齊
lblid.setBounds(20,30,50,20);
TextFieldid=newTextField();//創(chuàng)建一個單文本框,用于接受用戶ID輸入
id.setBounds(75,30,110,20);
Labellblpwd=newLabel("PWD:",Label.CENTER);
lblpwd.setBounds(20,55,50,20);
TextFieldpw=newTextField();//創(chuàng)建一個單文本框,用于接受用戶密碼輸入
pw.setBounds(75,55,110,20);
Buttonlogin=newButton("登錄");//登錄按鈕
login.setBounds(40,80,60,20);
----------------------------------------------
}}Buttoncancel=newButton("取消");//取消按鈕cancel.setBounds(105,80,60,20);pw.setEchoChar('*');//指定密碼顯示字符為'*'//向frame順序添加組件frame.add(lblid);//添加標(biāo)簽組件
frame.add(id);//添加文本框frame.add(lblpwd);frame.add(pw);//添加文本框frame.add(login);//添加按鈕frame.add(cancel);//添加按鈕下拉選項框(Choice)常用方法:
21【例13-7】演示創(chuàng)建下拉選項框。22importjava.awt.*;publicclassexam13_7{ publicstaticvoidmain(String[]args){ Framef=newFrame(); f.setTitle("我的GUI窗口"); f.setLayout(null); f.setSize(500,300); f.setBackground(Color.green); f.setVisible(true); //選項框 Labellabel=newLabel("選項框的例子:"); label.setBounds(20,50,80,20);---------------------------------- }}Choicec=newChoice();//創(chuàng)建一個下拉選項框c.addItem("北京");//添加選項c.addItem("上海");c.addItem("天津");c.addItem("南京");c.addItem("鄭州");c.addItem("武漢");c.setBounds(110,50,60,20);//設(shè)置選項框的位置和大小f.add(label);f.add(c);滾動列表(List)常用方法:
23【例13-8】演示滾動菜單的使用。24importjava.awt.*;publicclassexam13_8{ publicstaticvoidmain(Stringargs[]){ Frameframe=newFrame("Listtest");Listlist1=newList();//不可多選的列表
Listlist2=newList(6,true);//true表示可以多選,顯示6行------------------------------------------
frame.add(list2); frame.add(list1,"Center");//向frame添加list1 frame.add(list2,"South"); //向frame添加list2 frame.setSize(300,200); frame.setVisible(true); }}list1.add("長江");list1.add("黃河");list1.add(“淮河”);list2.add("北京大學(xué)");list2.add("清華大學(xué)");list2.add("吉林大學(xué)");list2.add("復(fù)旦大學(xué)");list2.add("南開大學(xué)");list2.add("天津大學(xué)");list2.add("南京大學(xué)");復(fù)選框(Checkbox)常用方法:
25復(fù)選框組(CheckboxGroup)常用方法:
26【例13-10】單選按鈕示例27importjava.awt.*;publicclassexam13_10{ publicstaticvoidmain(Stringargs[]){ Frameframe=newFrame("CheckboxGroup");
CheckboxGroupradioGroup=newCheckboxGroup();//復(fù)選框組 //cb1、cb2、cb3屬于復(fù)選框組radioGroup Checkboxcb1=newCheckbox("紅色",radioGroup,true); Checkboxcb2=newCheckbox("黃色",radioGroup,false); Checkboxcb3=newCheckbox("藍(lán)色",radioGroup,false); frame.add(cb1); frame.add(cb2); frame.add(cb3); frame.setLayout(newFlowLayout()); frame.setSize(200,100); frame.setVisible(true); }}菜單(Menu)Java提供下列類來創(chuàng)建和管理菜單:MenuBar:菜單條Menu:菜單MenuItem:菜單項CheckboxMenuItem:帶復(fù)選框的菜單項28菜單(Menu)創(chuàng)建一個完整的菜單參照如下的步驟:創(chuàng)建MenuBar類的對象為你想在菜單欄上出現(xiàn)的每個菜單,創(chuàng)建Menu類對象調(diào)用MenuBar類的add()方法來為菜單欄增加菜單對象為每個子菜單項創(chuàng)建MenuItem或CheckboxMenuItem類的對象調(diào)用Menu對象的add()方法來增加菜單選項到相應(yīng)的菜單里。2930任務(wù)實現(xiàn)1分析該任務(wù)中涉及到的GUI容器和組件23創(chuàng)建窗體類給窗體類添加所需要的組件45創(chuàng)建初始化容器和組件的方法利用構(gòu)造函數(shù)在創(chuàng)建對象的時候自動調(diào)用步驟4所創(chuàng)建的方法6讓窗體顯示出來31驅(qū)動任務(wù)二在上一節(jié)任務(wù)開設(shè)新賬號界面的基礎(chǔ)上實現(xiàn)注冊賬號功能32目標(biāo)及知識點事件機(jī)制、事件與事件源及事件監(jiān)聽器的概念11捕獲事件并進(jìn)行事件處理2事件和事件源事件就是在用戶界面上發(fā)生與用戶交互行為而產(chǎn)生的一種效果,如鼠標(biāo)的各種動作(點擊、移入、移出等)、鍵盤的操作(按下、釋放等)以及發(fā)生在組件上的各種動作(獲得焦點、失去焦點等)事件源就是產(chǎn)生事件的那個組件,比如點擊按鈕產(chǎn)生了一個點擊事件,那么這個被點擊的按鈕就是事件源。33事件監(jiān)聽器如何捕獲事件是我們在做事件處理的時候首先要考慮的問題,這就需對各個事件進(jìn)行監(jiān)聽,判斷該事件是否發(fā)生。常見的事件監(jiān)聽器34【例13-11】35Frameframe=newFrame(); frame.addWindowListener(newWindowListener(){ publicvoidwindowActivated(WindowEvente){ //處理當(dāng)窗口在最前面時的事件 } public
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 師徒帶教培訓(xùn)管理制度
- 健康宣傳培訓(xùn)制度
- 庫房消防安全培訓(xùn)制度
- 培訓(xùn)現(xiàn)場調(diào)度制度
- 科三培訓(xùn)與管理制度
- 籃球培訓(xùn)機(jī)構(gòu)制度
- 培訓(xùn)機(jī)構(gòu)公司管理制度
- 人事部報名培訓(xùn)管理制度
- 培訓(xùn)班安全生產(chǎn)三項制度
- 人員培訓(xùn)制度制度
- 電梯安裝施工合同
- DBJ41-T 263-2022 城市房屋建筑和市政基礎(chǔ)設(shè)施工程及道路揚(yáng)塵污染防治差異化評價標(biāo)準(zhǔn) 河南省工程建設(shè)標(biāo)準(zhǔn)(住建廳版)
- 水工鋼結(jié)構(gòu)平面鋼閘門設(shè)計計算書
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 耐高溫鋁電解電容器項目計劃書
- 小學(xué)四年級語文上冊期末測試卷(可打印)
- 《肺癌的診斷與治療》課件
- 人教版三年級上冊數(shù)學(xué)應(yīng)用題100題及答案
- 防污閃涂料施工技術(shù)措施
- 環(huán)衛(wèi)清掃保潔、垃圾清運(yùn)及綠化服務(wù)投標(biāo)方案(技術(shù)標(biāo) )
- 房地產(chǎn)運(yùn)營-項目代建及管理實務(wù)
評論
0/150
提交評論