版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第14講 圖形用戶界面程序設計(一)o主要內容n組件與容器n布局與布局管理器2圖形用戶界面(GUI)oJava中支持圖形用戶界面編程的包nAWT(Abastract Window Toolkit) 早期版本的圖形編程包,平臺相關性較強。缺少剪貼板和打印支持功能。nSwing 基于AWT基礎之上的新的圖形編程包,功能更強大,平臺獨立性更好。建議在進行java圖形用戶界面編程時使用Swing。3組件和容器o組件是圖形用戶界面的組成部分,如命令按鈕就是一種組件,窗口也是一種組件。o如果一個組件上面還可以放置其他組件,那這個組件就叫做容器。o組件按其用途可分為:頂層容器、一般容器、專用容器和基本控件
2、?;究丶挚煞譃椴豢删庉嫿M件(如標簽)和可編輯組件(如文本框)。4容器o頂層容器頂層容器不能放置在其他容器上。頂層容器主要有三種:n小應用程序(Applet/JApplet):用于設計可嵌入網(wǎng)頁中運行的程序的界面。n對話框(Dialog/JDialog):用于在程序中顯示提示信息或輸入少量信息。n窗體/框架(Frame/JFrame):用于設計應用程序的圖形用戶界面。5容器o一般容器(中間容器)可以放置在其他容器上的容器。n面板(JPanel)n滾動窗格(JScrollPane)n分裂窗格(JSplitPane)n選項卡窗格(JTabbedPane)n工具條(JToolBar)6容器o專用容
3、器起特殊作用的容器。n內部框架(JInternalFrame)n分層窗格(JLayeredPane)n根窗格(JRootPane)o根窗格又由玻璃窗格、分層窗格、內容窗格和菜單窗格組成7圖形用戶界面程序設計涉及的相關類o組件類n提供各種圖形用戶界面組件。這些類包含在java.awt和javax.swing包中。 o布局類n實現(xiàn)組件在容器上的各種排列方式。這些類一般在java.awt包中。 o事件處理類。n實現(xiàn)對各種事件的響應。包含在java.awt.event和javax.swing.event包中。o其他類n處理顏色、8體驗圖形用戶界面編程import javax.swing.* ;impo
4、rt java.awt.*;public class ExGui public static void main( String args )JFrame jf ;JButton jb1 ;JButton jb2 ;jf = new JFrame(我的第一個圖形用戶界面程序) ;jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /指定關閉方式jf.setLayout(new FlowLayout(); /指定組件在窗口上的布局方式jb1 = new JButton(Press Me);jb2 = new JButton(Do not pres
5、s me!);jf.add(jb1) ; /在窗口上增加按鈕組件jf.add(jb2);jf.pack( );jf.setVisible(true) ; /顯示窗口9圖形用戶界面編程的一般步驟o創(chuàng)建組件,完成圖形用戶界面布局o編寫事件處理程序,通過事件處理機制響應用戶的操作,完整指定任務。10頂層容器JFrame(帶有標題并可改變大小的頂層容器)o創(chuàng)建JFrame對象npublic JFrame(String title)o設置關閉框架的行為npublic void setDefaultCloseOperation(int operation)o設置框架的大小npublic void setS
6、ize(int width, int height)o設置框架是否可見npublic void setVisible(boolean b)o設置布局方式npublic void setLayout(LayoutManager mgr)o添加組件nPublic Compnent add(Component comp)11頂層容器JFrameo取得JFrame對象的內容窗格npublic Container getContentPane()o注:往框架上放組件就是往其內容窗格上放組件。以下兩條命令作用等價:njf.add(new JButton(“OK”);nJf.getContentPane()
7、.add (new JButton(“OK”);12JPanel容器(必須放置在其他容器上)o通過在JPanel對象上放置組件,再將JPanel對象放置在其他容器上來實現(xiàn)復雜的用戶界面布局。常用方法如下:o創(chuàng)建JPanel對象npublic JPanel()o設置布局方式npublic void setLayout(LayoutManager mgr)o設置面板的大小npublic void setSize(int width, int height)o設置背景顏色npublic void setBackground(Color color);o添加組件nPublic Compnent add
8、(Component comp)13布局管理器(Layout Manager)o容器中組件的位置和大小通常由布局管理器來控制。o每個容器都由一個缺省的Layout Manager ,可通過setLayout( )方法改變。oJava提供的布局管理器nFlowLayoutnBorderLayoutnGridLayoutnCardLayoutnGridBagLayout14Layout Manager(布局管理器)布局管理器)15Flow Layout Manager組件采用從左到右,從上到下逐行擺放。組件采用從左到右,從上到下逐行擺放。 Flow LayoutOpenCloseok Flow L
9、ayoutOpenCloseok setLayout(new FlowLayout(int align,int hgap, int vgap)FlowLayout.LEFTFlowLayout.RIGHTFlowLayout.CENTER缺省是居中缺省是居中16Border Layout ManagerBorder Layout 分分5個區(qū):個區(qū):BorderLayoutNorthWestEastSouthCenter17BorderLayout ManageroBorder Layout 分5個區(qū)BorderLayoutNorthWestEastSouthCenter18Border Lay
10、out oBorderLayout的構造方法:npublic BorderLayout( ) -組件間無縫隙npublic BorderLayout(int hgap,int vgap)o例;設置容器c的布局為BorderLayoutnc.setLayout(new BorderLayout();o往容器中加入組件的方法:nadd(組件對象, BorderLayout.方位常量)n方位常量:CENTER, NORTH,SOUTH,WEST,EASTo例:例:TestBorderLayout.java19GridLayouto把容器分成網(wǎng)格,n行*m列。組件從左到右,從上到下填充。o構造與設置布
11、局管理器:nsetLayout(new GridLayout(int rows, int cols);20Grid123456GridLayout例:例: f = new Frame(“Grid”) ;f.setLayout(new Gridlayout(3,2) ;b1 = new Button(“1”) ;b2 = new Button(“2”);b3 = new Button(“3”); b4 = new Button(“4”); b5 = new Button(“5”); b6 = new Button(“6”); f.add(b1);f.add(b2); f.add(b3); f.a
12、dd(b4); f.add(b5); f.add(b6); f.pack( ) ;f.setVisible(true) ;21CardLayout把組件象一系列卡片一樣疊放,一個時刻只能把組件象一系列卡片一樣疊放,一個時刻只能看到最上面的??吹阶钌厦娴摹?2GridBagLayout23如何選擇布局管理器o要使組件盡量充滿容器空間nBorderLayoutnGridBagLayouto要使組件以自然大小緊湊的在一行中顯示nFlowLayout o組件大小相同,并且成行或成列顯示nGridLayout24Component類提供的功能類提供的功能 支持基本的支持基本的 drawing 。pain
13、t(), update(), repaint() 方法顯示組件自身。方法顯示組件自身。 事件處理。事件處理。通用的事件處理方法:通用的事件處理方法: handleEvent() ;特定的事件處理方法,如;特定的事件處理方法,如 action() 組件外觀控制組件外觀控制字體、顏色字體、顏色 圖象處理圖象處理Canvases以及多數(shù)以及多數(shù)container能夠顯示圖象能夠顯示圖象 屏幕上組件大小與位置控制屏幕上組件大小與位置控制 preferredSize() , minimumSize()方法可以通知布局管理器組件的方法可以通知布局管理器組件的最佳與最小的大小最佳與最小的大小25Canvas
14、es 26Checkbox 與與 CheckboxGroup 27Panel p1, p2;Checkbox cb1, cb2, cb3; /These are independent checkboxes.Checkbox cb4, cb5, cb6; /These checkboxes are part of a group.CheckboxGroup cbg;cb1 = new Checkbox(); /Default state is off (false).cb1.setLabel(Checkbox 1);cb2 = new Checkbox(Checkbox 2);cb3 = ne
15、w Checkbox(Checkbox 3);cb3.setState(true); /Set state to on (true). . .cbg = new CheckboxGroup();cb4 = new Checkbox(Checkbox 4, cbg, false); /initial state: off (false)cb5 = new Checkbox(Checkbox 5, cbg, false); /initial state: offcb6 = new Checkbox(Checkbox 6, cbg, false); /initial state: off28Choi
16、ce29 /.Where instance variables are defined: Choice choice; /pop-up list of choices /.Where initialization occurs: choice = new Choice(); choice.addItem(ichi); choice.addItem(ni); choice.addItem(san); choice.addItem(yon); label = new Label(); setLabelText(choice.getSelectedIndex(), choice.getSelecte
17、dItem(); .30Dialog31List 32 ./Where instance variables are declared: TextArea output; List spanish, italian; ./Where initialization occurs: /Build first list, which allows multiple selections. spanish = new List(4, true); /prefer 4 items visible spanish.addItem(uno); spanish.addItem(dos); spanish.ad
18、dItem(tres); spanish.addItem(cuatro); spanish.addItem(cinco); spanish.addItem(seis); spanish.addItem(siete); /Build second list, which allows one selection at a time. italian = new List(); /Defaults to none visible, only one selectable italian.addItem(uno); italian.addItem(due); italian.addItem(tre); italian.addItem(quattro); italian.addItem(cinque); italian.addItem(sei); italian.addItem(sette); . . .33Scrollbar 34ScrollPane Scroll Pane 中放入中放入canvas35TextArea and TextField36/Where instance variables are defined:TextField textField;TextArea textArea;public void in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版酒店紅酒供貨合同
- 2025年度新能源汽車充電樁運營管理合同重點條款探討3篇
- 2024政府機關綠化工程采購合同范本二零二四2篇
- 二零二五版合同能源服務與節(jié)能產品推廣協(xié)議模板3篇
- 2025年度智能場館場地租賃合同范本3篇
- 2024自建房施工合同包工包料合同
- 二零二四年度35kv架空線路施工工程設計與施工協(xié)調合同
- 2025年度金融機構外匯借款合同模板12篇
- 勞動合同編號:XX-2025年度-001
- 2025年智能燃氣表推廣與應用居民供氣合同3篇
- 城市軌道交通的網(wǎng)絡安全與數(shù)據(jù)保護
- 英國足球文化課件
- 《行政職業(yè)能力測驗》2023年公務員考試新疆維吾爾新疆生產建設兵團可克達拉市預測試題含解析
- 醫(yī)院投訴案例分析及處理要點
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結算以及零星項目預算程序實施細則(試行)
- 練習20連加連減
- 五四制青島版數(shù)學五年級上冊期末測試題及答案(共3套)
- 員工內部崗位調換申請表
- 商法題庫(含答案)
- 鋼結構用高強度大六角頭螺栓連接副 編制說明
評論
0/150
提交評論