![第9章 GUI_教學設(shè)計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/636c600b-6eab-4655-a62d-da40bfab384f/636c600b-6eab-4655-a62d-da40bfab384f1.gif)
![第9章 GUI_教學設(shè)計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/636c600b-6eab-4655-a62d-da40bfab384f/636c600b-6eab-4655-a62d-da40bfab384f2.gif)
![第9章 GUI_教學設(shè)計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/636c600b-6eab-4655-a62d-da40bfab384f/636c600b-6eab-4655-a62d-da40bfab384f3.gif)
![第9章 GUI_教學設(shè)計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/636c600b-6eab-4655-a62d-da40bfab384f/636c600b-6eab-4655-a62d-da40bfab384f4.gif)
![第9章 GUI_教學設(shè)計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/636c600b-6eab-4655-a62d-da40bfab384f/636c600b-6eab-4655-a62d-da40bfab384f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、博學谷讓IT教學更簡單,讓IT學習更有效傳智播客Java基礎(chǔ)入門教學設(shè)計課程名稱: Java基礎(chǔ)入門 授課年級: 2014年級 授課學期: 2014學年第一學期教師姓名: 某某老師 2014年02月09日課題名稱第9章 GUI計劃學時6 課時內(nèi)容分析GUI全稱是Graphical User Interface,就是應(yīng)用程序提供給用戶操作的圖形界面,包括窗口、菜單、按鈕、工具欄和其它各種圖形界面元素。Java中針對GUI設(shè)計提供了豐富的類庫,這些類分別位于java.awt和javax.swing包中。本章針對AWT和Swing進行詳細的講解。教學目標及基本要求要求學生了解GUI開發(fā)的相關(guān)原理和技
2、巧,掌握AWT事件處理、布局管理器、AWT繪圖,熟悉Swing組件的使用。重點及措施教學重點: AWT事件處理、布局管理器、Swing組件的使用難點及措施教學難點:AWT事件處理、布局管理器、Swing組件的使用教學方式教學采用教師課堂講授為主,使用教學PPT講解教學過程第一課時(AWT概述、事件處理機制、事件適配器、用匿名內(nèi)部類實現(xiàn)事件監(jiān)聽事件處理)l AWT概述 AWT組成AWT是用于創(chuàng)建圖形用戶界面的一個工具包,它提供了一系列用于實現(xiàn)圖形界面的組件。在JDK中針對每個組件都提供了對應(yīng)的Java類,如下圖所示: Window Window類是不依賴其它容器而獨立存在的容器,它有兩個子類,分
3、別是Frame類和Dialog類。如下圖所示: Frame示例 Dialog示例 PanelPane容器只能存在其它容器(Window或其子類)中,一個Panel對象代表了一個長方形的區(qū)域,在這個區(qū)域中可以容納其它組件,下圖是一個Panel組件:l 事件處理機制事件處理機制專門用于響應(yīng)用戶的操作,在學習如何使用AWT事件處理機制之前,首先介紹幾個比較重要的概念,具體如下所示:l 事件對象(Event):封裝了GUI組件上發(fā)生的特定事件。l 事件源(組件):事件發(fā)生的場所,通常就是產(chǎn)生事件的組件。l 監(jiān)聽器(Listener):負責監(jiān)聽事件源上發(fā)生的事件,并對各種事件做出響應(yīng)處理的對象(對象中包
4、含事件處理器)。l 事件處理器:監(jiān)聽器對象對接收的事件對象進行相應(yīng)處理的方法。l 事件適配器JDK提供了一些適配器類,它們是監(jiān)聽器接口的默認實現(xiàn)類,這些實現(xiàn)類中實現(xiàn)了接口的所有方法。程序可以通過繼承適配器類來達到實現(xiàn)監(jiān)聽器接口的目的。例如,定義一個繼承適配器類WindowAdapter的類MyWindowAdapter,如果要實現(xiàn)關(guān)閉窗口的功能,需要對windowClosing()方法進行重寫。l 用匿名內(nèi)部類實現(xiàn)事件處理實際開發(fā)中,經(jīng)常通過匿名內(nèi)部類來創(chuàng)建事件監(jiān)聽器對象,針對所發(fā)生的事件進行處理。例如,為窗口添加一個具有點擊事件的按鈕,該按鈕用于退出程序,具體的實現(xiàn)代碼如下所示:import
5、 java.awt.*;import java.awt.event.*;public class Example04 public static void main(String args) Frame f = new Frame(我的窗體!);f.setSize(400, 300);f.setLocation(300, 200);f.setVisible(true);Button btn = new Button(EXIT); / 創(chuàng)建按鈕組件對象f.add(btn); / 把按鈕對象加載到窗口上/ 用內(nèi)部類的方式為按鈕組件注冊監(jiān)聽器btn.addMouseListener(new Mous
6、eAdapter() public void mouseClicked(MouseEvent e) System.exit(0););當按鈕被點擊時,會把點擊事件作為對象傳遞給事件監(jiān)聽器,作出退出程序的處理。第二課時(窗體事件、鼠標事件、鍵盤事件和動作事件、布局管理器)l 窗體事件當對窗體進行操作時,比如窗體的打開、關(guān)閉、激活、停用等,這些動作都屬于窗體事件,JDK中提供了一個類WindowEvent用于表示這些窗體事件。l 鼠標事件在圖形用戶界面中,用戶會經(jīng)常通過鼠標來進行選擇、切換界面等操作,這些操作被定義為鼠標事件,其中包括鼠標按下、鼠標松開、鼠標單擊等。鼠標事件使用MouseEvent
7、類表示,處理鼠標事件需要通過實現(xiàn)MouseListener接口定義監(jiān)聽器,也可以繼承適配器MouseAdapter類來實現(xiàn)。l 鍵盤事件例如鍵盤按下、釋放等,這些操作被定義為鍵盤事件。鍵盤事件使用KeyEvent類表示,處理鍵盤事件的監(jiān)聽器對象需要實現(xiàn)KeyListener接口或者繼承KeyAdapter類。l 動作事件動作事件只是表示一個動作發(fā)生了,不需要關(guān)心使用哪種方式對文件進行關(guān)閉,只要是對關(guān)閉按鈕進行操作,即觸發(fā)了動作事件。動作事件用ActionEvent類表示,處理ActionEvent事件的監(jiān)聽器對象需要實現(xiàn)ActionListener接口。l 布局管理器組件不能單獨存在,必須放置
8、于容器當中,而組件在容器中的位置和尺寸是由布局管理器來決定的。每個容器在創(chuàng)建時都會使用一種默認的布局管理器,在程序中可以通過調(diào)用容器對象的setLayout()方法設(shè)置布局管理器,通過布局管理器來自動進行組件的布局管理。 FlowLayoutFlowLayout(流式布局管理器)下,容器會將組件按照添加順序從左向右放置。到達邊界時,會自動將組件放到下一行的開始位置。FlowLayout有三個構(gòu)造方法,具體如下:方法聲明功能描述FlowLayout()組件默認居中對齊,水平、垂直間距為5個單位FlowLayout(int align)指定組件的對齊方式,水平、垂直間距為5個單位FlowLayou
9、t(int align,int hgap,int vgap)指定組件的對齊方式和水平、垂直間距下列是一個FlowLayout布局管理器的示例: BorderLayoutBorderLayout(邊界布局管理器)將容器劃分為五個區(qū)域,分別是東(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。BorderLayout布局的效果如下圖所示。 GridLayoutGridLayout(網(wǎng)格布局管理器)使用縱橫線將容器分成n行m列大小相等的網(wǎng)格,每個網(wǎng)格中放置一個組件。 GridBagLayoutGridBagLayout(網(wǎng)格包布局管理器)與GridLayout布局
10、管理器類似,不同的是,它允許網(wǎng)格中的組件大小各不相同,而且允許一個組件跨越一個或者多個網(wǎng)格。使用GridBagLayout布局管理器的關(guān)鍵在于GridBagConstraints對象,它是控制容器中每個組件布局的核心類。GridBagConstraints的常用屬性如下所示:l gridx和 gridy:用于設(shè)置組件左上角所在網(wǎng)格的橫向和縱向索引。l gridwidth和gridheight:用于設(shè)置組件橫向、縱向跨越幾個網(wǎng)格。l fill:用于設(shè)置是否及如何改變組件大小。l weightx和weighty:設(shè)置組件在容器中的水平方向和垂直方向的權(quán)重。需要注意的是,如果希望組件的大小隨著容器的
11、增大而增大,必須同時設(shè)置GridBagConstraints對象的fill屬性和weightx、weighty屬性。 CardLayout卡片布局管理器(CardLayout)將界面看做一系列卡片,在任何時候只有其中一張卡片是可見的,這張卡片占據(jù)容器的整個區(qū)域。第三課時(AWT繪圖、JFrame、JDialog和中間容器)l AWT繪圖 Graphics類在java.awt包中專門提供了一個Graphics類,它相當于一個抽象的畫筆,其中提供了各種繪制圖形的方法,使用Graphics類的方法就可以完成在組件上繪制圖形。Graphics的常用方法如下所示:l setColor()用于指定上下文顏
12、色,方法中接收一個Color類型的參數(shù)。l setFont()用于指定上下文字體,方法中接收一個Font類型的參數(shù)。l drawRect()和drawOval()方法用于繪制矩形和橢圓形的邊框,l fillRect()和fillOval()用于使用當前顏色填充繪制完成的矩形和橢圓形。l drawString()用于繪制一段文本,第一個參數(shù)str表示繪制的文本內(nèi) 容,第二個和第三個參數(shù)x、y為繪制文本的左下角坐標。l Swing簡介大部分的Swing組件都是JComponent類的直接或者間接子類,而JComponent類是AWT中java.awt.Container的子類,接下來通過下圖來描述
13、AWT和Swing大部分組件的關(guān)聯(lián)關(guān)系:l JFrameJFrame是一個獨立存在的頂級窗口,不能放置在其它容器之中,Jframe支持通用窗口所有的基本功能,例如窗口最小化、設(shè)定窗口大小等等。 通過一個案例演示JFrame的效果:public Example15() this.setTitle(JFrameTest); this.setSize(200, 300); / 定義一個按鈕組件 JButton bt = new JButton(按鈕); / 設(shè)置流式布局管理器 this.setLayout(new FlowLayout(); / 添加按鈕組件 this.add(bt); / 設(shè)置點擊
14、關(guān)閉按鈕時的默認操作 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); 運行結(jié)果:JFrame類和Frame類最大的區(qū)別在于,JFrame類提供了關(guān)閉窗口的功能。l JDialogJDialog對話框可分為兩種:模態(tài)對話框和非模態(tài)對話框。所謂模態(tài)對話框是指用戶需要等到處理完對話框后才能繼續(xù)與其它窗口交互,而非模態(tài)對話框允許用戶在處理對話框的同時與其它窗口交互。Jdialog常用的構(gòu)造方法如下所示:方法聲明功能描述JDialog(Frame owner)創(chuàng)建非模態(tài)的對話框JDialog(Fram
15、e owner,String title)創(chuàng)建具有指定標題的非模態(tài)對話框JDialog(Frameowner,boolean modal)創(chuàng)建一個有指定模式的無標題對話框l 中間容器中間容器不能單獨存在,只能放置在頂級窗口中。常見的中間容器有兩種:l Jpanel:它是一個無邊框,不能被移動、放大、縮小或者關(guān)閉的面板,它的默認布局管理器是FlowLayout。也可以使用JPanel帶參數(shù)的構(gòu)造函數(shù)或者它的setLayout()方法為其制定布局管理器。l JscrollPane:JScrollPane是一個帶有滾動條的面板容器,而且這個面板只能添加一個組件,如果想往JScrollPane面板中添
16、加多個組件,應(yīng)該先將組件添加到JPanel中,然后將JPanel添加到JScrollPane中。第四課時(文本組件、按鈕組件、JcomboBox、菜單組件)l 文本組件 JTextComponent文本組件用于接收用戶輸入的信息或向用戶展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它們都有一個共同父類JtextComponent。JtextComponent提供了文本組件常用的方法,如下表所示:方法描述功能說明String String getText()返回文本組件中所有的文本內(nèi)容String getSelectedText()返回文本組件中選定的文本內(nèi)容
17、void selectAll()在文本組件中選中所有內(nèi)容void setEditable()設(shè)置文本組件為可編輯或不可編輯void setText(String text)設(shè)置文本組件的內(nèi)容void replaceSelection(String content)用給定的內(nèi)容替換當前選定的內(nèi)容 JTextFieldJTextField稱為文本框,它只能接收單行文本的輸入。創(chuàng)建一個文本框,示例代碼如下:inputField = new JTextField(20);獲取輸入的文本信息,示例代碼如下:String content = inputField.getText();將輸入的文本域內(nèi)容置為
18、空,示例代碼如下:inputField.setText(); JTextAreaJTextArea稱為文本域,它能接收多行的文本的輸入,使用JTextArea構(gòu)造方法創(chuàng)建對象時可以設(shè)定區(qū)域的行數(shù)、列數(shù)。 創(chuàng)建一個文本域,示例代碼如下:chatContent = new JTextArea(12, 34);設(shè)置文本域不可編輯,示例代碼如下:chatContent.setEditable(false);向文本域添加內(nèi)容,示例代碼如下:chatContent.append(向文本域添加內(nèi)容);l 按鈕組件 JCheckBoxJCheckBox組件被稱為復(fù)選框,它有選中(是)/未選中(非)兩種狀態(tài)。如
19、果復(fù)選框有多個,則用戶可以選中其中一個或者多個。創(chuàng)建JCheckBox對象的常用的構(gòu)造方法如下表所示:方法描述功能說明JCheckBox()創(chuàng)建一個沒有文本信息,初始狀態(tài)未被選中的復(fù)選框JCheckBox(String text)創(chuàng)建一個帶有文本信息,初始狀態(tài)未被選定的復(fù)選框JCheckBox(String text,boolean selected)創(chuàng)建一個帶有文本信息,并指定初始狀態(tài)(選中/未選中)的復(fù)選框。 JRadionButtonJRadioButton組件被稱為單選按鈕,與JCheckBox復(fù)選框不同的是,單選按鈕只能選中一個。創(chuàng)建JRadioButton對象常見的構(gòu)造方法如下所示
20、:方法描述功能說明JRadioButton ()創(chuàng)建一個沒有文本信息、初始狀態(tài)未被選中的單選JRadioButton (String text)創(chuàng)建一個帶有文本信息、初始狀態(tài)未被選定的單選框JRadioButton (String text,boolean selected)創(chuàng)建一個具有文本信息,并指定初始狀態(tài)(選中/未選中)的單選框l JComboBoxJComboBox組件被稱為組合框或者下拉列表框,它將所有選項折疊收藏在一起,默認顯示的是第一個添加的選項。當用戶點擊組合框時,會出現(xiàn)下拉式的選擇列表,用戶可以從中選擇其中一項并顯示。JComboBox常用方法有:l void addItem
21、(Object anObject):為組合框添加選項l void insertItemAt(Object anObject,int index):在指定的索引處插入選項l Objct getItemAt(int index):返回指定索引處選項,第一個索引為0l int getItemCount():返回組合框中選項的數(shù)目l Object getSelectedItem():返回當前所選項l void removeAllItems():刪除組合框中所有的選項l void removeItem(Object object):從組合框中刪除指定選項l void removeItemAt(int index):移除指定索引處的選項l void setEditable(boolean aFlag):設(shè)置組合框的選項是否可編輯,aFlag為true則可編輯,反之則不可編輯l 菜單組件 下拉式菜單創(chuàng)建下拉式菜單需要使用三個組件:JMenuBar(菜單欄)、JMenu(菜單)和JMenuItem(菜單項),以記事本為例,這三個組件在菜單中對應(yīng)的位置如下圖所示:(1)JMen
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代簡約風格與科技公司辦公環(huán)境的融合
- 現(xiàn)代物流技術(shù)與醫(yī)療物資保障體系
- 溝通技巧在教育工作中的創(chuàng)新應(yīng)用
- 環(huán)保技術(shù)在現(xiàn)代城市建設(shè)中的應(yīng)用
- 物流信息技術(shù)在商業(yè)領(lǐng)域的應(yīng)用
- Unit 3 Where did you go?PartB (說課稿)-2023-2024學年人教PEP版英語六年級下冊
- 2《燭之武退秦師》說課稿-2024-2025學年高一語文下學期同步說課稿(統(tǒng)編版必修下冊)
- 2024新教材高中地理 第四章 區(qū)域發(fā)展戰(zhàn)略 第二節(jié) 我國區(qū)域發(fā)展戰(zhàn)略說課稿 湘教版必修第二冊
- Unit3 Amazing animals(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊001
- 2024年高中化學 第三章 晶體結(jié)構(gòu)與性質(zhì) 章末整合說課稿 新人教版選修3
- 地理聽課學習記錄(六篇)
- 空氣能熱泵系統(tǒng)設(shè)計與安裝融資計劃書
- 2021中考地理真題試卷 山東省煙臺地理含答案
- 非法捕撈水產(chǎn)品罪
- 新概念第一冊單詞匯總帶音標EXCEL版
- 作用于血液及造血器官的藥 作用于血液系統(tǒng)藥物
- 心肺復(fù)蘇(最全版)完整版
- 春節(jié)節(jié)后施工復(fù)工安全培訓
- GB/T 3478.1-1995圓柱直齒漸開線花鍵模數(shù)基本齒廓公差
- GB/T 1346-2001水泥標準稠度用水量、凝結(jié)時間、安定性檢驗方法
- FZ/T 25001-2012工業(yè)用毛氈
評論
0/150
提交評論