版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、容器與界面精準(zhǔn)布局圖形用戶界面概述容器類布局管理器主 要內(nèi) 容圖形用戶界面(Graphics User Interface,GUI)是指使用包括窗口、圖標(biāo)、組件等的圖形顯示方式,鼠標(biāo)、鍵盤等輸入設(shè)備,事件驅(qū)動(dòng)機(jī)制來(lái)實(shí)現(xiàn)與用戶進(jìn)行交互操作的應(yīng)用程序界面。計(jì)算機(jī)應(yīng)用發(fā)展到現(xiàn)在,GUI已經(jīng)成為應(yīng)用程序的基本要求。14.1 圖形用戶界面概述14.1 圖形用戶界面概述窗口及常見(jiàn)的圖形用戶界面元素設(shè)計(jì)圖形用戶界面,主要完成兩個(gè)任務(wù): (1)根據(jù)程序的需要選擇恰當(dāng)?shù)膱D形組件構(gòu)造界面,并進(jìn)行合理的布局。 (2)利用事件驅(qū)動(dòng)機(jī)制定義界面組件與用戶之間的交互,對(duì)用戶行為進(jìn)行響應(yīng)。14.1 圖形用戶界面概述Java
2、專門設(shè)計(jì)了類庫(kù)來(lái)滿足各種圖形用戶界面元素和用戶交互事件。Java的GUI類庫(kù)由和兩個(gè)包組成,分別稱為AWT組件庫(kù)和Swing組件庫(kù)。14.1 圖形用戶界面概述包, AWT, 抽象窗口工具集依賴本地GUI, “重型組件”(heavyweight component)包, Swing組件庫(kù)不依賴本地GUI, “輕型組件”(lightweight compont)14.1 圖形用戶界面概述14.1 圖形用戶界面概述GUI類的分類:容器類 container class用來(lái)包含其他組件。如: JFrame, JPanel, JApplet, 14.1 圖形用戶界面概述GUI類的分類:輔助類 helpe
3、r class組件和容器用來(lái)繪制和放置對(duì)象如: Graphics, Color, Font, FontMetrics, Dimension, 14.1 圖形用戶界面概述GUI類的分類:組件類 component class用戶界面的組成部分如: JButton, JTextField, JTextArea, 14.2 容器類容器是圖形用戶界面設(shè)計(jì)中必不可少的界面元素,它是用來(lái)放置其它組件的特殊組件。Swing容器類主要包括:頂層容器面板容器圖形用戶界面的頂層容器是指應(yīng)用程序的最外層容器,通常直接出現(xiàn)在操作系統(tǒng)的桌面上,頂層容器不能再被其它容器包含。14.2.1 頂層容器:用于構(gòu)造GUI窗口的頂
4、層容器類,是組織管理其它Swing組件形成復(fù)雜界面的基礎(chǔ)。:用于構(gòu)造GUI對(duì)話框窗口的頂層容器類,一般用于接收來(lái)自用戶的指令或通知事件發(fā)生的容器。Swing組件的頂層容器類主要有:import javax.swing.JFrame;public class MyFrame public static void main(String args) JFrame frame = new JFrame(My Frame);框架JFrame1. 創(chuàng)建框架 frame.setSize(400, 300); frame.setLocationRelativeTo(null); (JFrame.EXIT_O
5、N_CLOSE); frame.setVisible(true); 框架JFrame1. 創(chuàng)建框架掌握: 構(gòu)造方法; 設(shè)置窗口大小; 顯示窗口演示import javax.swing.*;import java.awt.*;public class MyFrameWithComponents public static void main(String args) JFrame frame = new JFrame(Adding Components into the Frame);框架JFrame2. 在框架中添加組件 Container container = frame.getConte
6、ntPane(); JButton jbtOK = new JButton(OK); container.add(jbtOK);frame.setSize(400,300); frame.setVisible(true);CLOSE); 演示import javax.swing.JFrame;public class FrameUseInherit extends JFrame public FrameUseInherit() /* 無(wú)參構(gòu)造方法 */ this(A Frame Demo);框架JFrame3. 使用繼承創(chuàng)建窗口 public FrameUseInherit(String ti
7、tle) /* 參數(shù)為窗口標(biāo)題的構(gòu)造方法 */ super(title); this.setSize(400,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); public static void main(String args) /* main方法 */ new FrameUseInherit(); new FrameUseInherit(使用繼承創(chuàng)建的窗口); 演示14.2.2 面板容器面板容器是一種中間層容器,可放置其他GUI組件,也可作為一個(gè)組件添加到其他容器中。利用面板容
8、器可以實(shí)現(xiàn)界面的嵌套和復(fù)雜的GUI界面。Swing包主要面板容器:Jpanel類JScrollPane類14.2.2 面板容器類為一個(gè)通用的輕型容器,主要用于管理放置其中的GUI組件以形成界面的局部功能,再作為一個(gè)整體添加到頂層容器或面板容器。另一個(gè)作用是作為繪圖操作的“畫(huà)布”。 類,為需要進(jìn)行內(nèi)容滾動(dòng)的GUI組件提供一個(gè)輕型的滾動(dòng)視圖。當(dāng)要顯示的內(nèi)容超出組件范圍示,根據(jù)設(shè)置自動(dòng)出現(xiàn)水平和垂直滾動(dòng)條。14.2.2 面板容器JPanel容器在Java GUI設(shè)計(jì)時(shí), 經(jīng)常使用JPanel作為分組放置用戶界面組件的子容器。并進(jìn)行面板有嵌套。演示14.3 布局管理器布局管理器管理GUI組件在界面容器
9、的位置和大小。布局管理器由布局管理類創(chuàng)建,所有布局管理器類都實(shí)現(xiàn)了java.awt. LayoutManager接口。14.3 布局管理器容器包含一個(gè)setLayout(LayoutManager)方法設(shè)置其布局管理器。最常用的三種布局管理器:FlowLayoutGridLayoutBorderLayout14.3.1 FlowLayout流式布局FlowLayout按照添加順序, 由左向右將組件排列在容器中, 放滿一行就開(kāi)始新的一行。14.3.1 FlowLayout組件在容器中有3種對(duì)齊方式:FlowLayout.LEFTFlowLayout.CENTERFlowLayout.RIGHT1
10、4.3.1 FlowLayoutFlowLayout的構(gòu)造方法:public FlowLayout(int align, int hGap, int vGap)public FlowLayout(int align)public FlowLayout()14.3.1 FlowLayout注意: 組件大小由自身決定。14.3.2 GridLayoutGridLayout按照構(gòu)造方法定義的行數(shù)和列數(shù), 以網(wǎng)格的形式排列組件。按照添加順序自左向右, 自上而下。14.3.2 GridLayoutFlowLayout的構(gòu)造方法:public GridLayout(int rows, int cols,
11、int hGap, int vGap)public GridLayout(int rows, int cols)public GirdLayout()行數(shù)和列數(shù)可以為0, 但不能同時(shí)為0. 若其中一個(gè)為0, 則不為0的維數(shù)已經(jīng)確定, 為0的維數(shù)由布局管理器動(dòng)態(tài)決定。如果行數(shù)和列數(shù)均不為0, 則行數(shù)為主要參數(shù). 即行數(shù)按指定數(shù)值固定, 列數(shù)動(dòng)態(tài)調(diào)整。14.3.2 GridLayout行數(shù)和列數(shù)的指定規(guī)則:14.3.2 GridLayout注意: 組件大小相同,由布局管理器動(dòng)態(tài)控制。14.3.3 BorderLayoutBorderLayout把窗口分為5區(qū): 東、南、西、北、中。 使用add(c
12、omponent, index)方法添加組件。14.3.3 BorderLayout其中參數(shù)index的取值可以是:BorderLayout.EASTBorderLayout.SOUTHBorderLayout.WESTBorderLayout.NORTHBorderLayout.CENTER14.3.3 BorderLayoutBorderLayout的構(gòu)造方法:public BorderLayout(int hGap, int vGap)public BorderLayout()14.3.3 BorderLayout注意:東/西組件的寬度固定,南/北組件的高度固定,其它由布局管理器動(dòng)態(tài)控制。14.3.4 布局管理器的屬性各布局管理器均有屬性及相應(yīng)的訪問(wèn)器和修改器:FlowLayout: alignment, hGap, vGapGridLayout: rows,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度舊環(huán)保設(shè)備買賣與運(yùn)營(yíng)維護(hù)合同3篇
- 二零二五年度建筑廢棄物綜合利用合同3篇
- 計(jì)算思維課程設(shè)計(jì)
- 海南醫(yī)學(xué)院《生物醫(yī)學(xué)工程倫理及政策法規(guī)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度抵債資產(chǎn)轉(zhuǎn)讓與受讓合同3篇
- 海南師范大學(xué)《武術(shù)教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 照明電氣設(shè)計(jì)課程設(shè)計(jì)
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)綠化種植與生態(tài)保護(hù)合同3篇
- 二零二五年度安置房租賃中介服務(wù)合同
- 算法課程設(shè)計(jì)2048
- 胰腺損傷的護(hù)理課件
- 中醫(yī)類診所規(guī)章制度與崗位職責(zé)
- 中國(guó)成人急性呼吸窘迫綜合征(ARDS)診斷與非機(jī)械通氣治療指南(2023版)解讀
- 定向鉆電力頂管施工方案
- 外研版八年級(jí)英語(yǔ)上冊(cè)期末單詞詞性分類測(cè)試表(漢譯英)
- 一氧化氮讓你遠(yuǎn)離心腦血管病第(全書(shū)回顧綜合版)
- 2022年天津三源電力集團(tuán)限公司社會(huì)招聘33人上岸筆試歷年難、易錯(cuò)點(diǎn)考題附帶參考答案與詳解
- 2023-2024學(xué)年廣東廣州番禺區(qū)四年級(jí)數(shù)學(xué)第一學(xué)期期末綜合測(cè)試試題含答案
- 尿崩癥診療規(guī)范內(nèi)科學(xué)診療規(guī)范診療指南2023版
- 壓縮語(yǔ)段之語(yǔ)段要點(diǎn)概括公開(kāi)課一等獎(jiǎng)市優(yōu)質(zhì)課賽課獲獎(jiǎng)?wù)n件
- 零售藥店醫(yī)保培訓(xùn)試題及答案,零售藥店醫(yī)保培
評(píng)論
0/150
提交評(píng)論