版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 12 章 圖形界面設(shè)計(jì)1本章主要內(nèi)容2圖形用戶界面工具包圖形用戶界面工具包SwingSwing組件分類組件分類Swing容器的內(nèi)部結(jié)構(gòu)容器的內(nèi)部結(jié)構(gòu)創(chuàng)建組件創(chuàng)建組件窗口的布局管理設(shè)計(jì)窗口的布局管理設(shè)計(jì)1212.1.1圖圖形用形用戶戶界面界面概概述述圖形用戶界面圖形用戶界面(Graphics User Interface,GUI) 用圖形的方式,借助菜單。按鈕等標(biāo)準(zhǔn)界面元用圖形的方式,借助菜單。按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,幫助用戶方便地向計(jì)算機(jī)系統(tǒng)素和鼠標(biāo)操作,幫助用戶方便地向計(jì)算機(jī)系統(tǒng)發(fā)出指令、啟動(dòng)操作,并將系統(tǒng)運(yùn)行的結(jié)果同發(fā)出指令、啟動(dòng)操作,并將系統(tǒng)運(yùn)行的結(jié)果同樣以圖形方式顯示給用戶的
2、技術(shù)。樣以圖形方式顯示給用戶的技術(shù)。Java的的GUI程序設(shè)計(jì)是程序設(shè)計(jì)是Java程序設(shè)計(jì)的基礎(chǔ)。程序設(shè)計(jì)的基礎(chǔ)。34圖形界面編程的三個(gè)要素:圖形界面編程的三個(gè)要素:q 圖形界面對(duì)象及其框架(圖形界面對(duì)象之間的包含關(guān)系)q 圖形界面對(duì)象的布局(圖形界面對(duì)象之間的位置關(guān)系)q 圖形界面對(duì)象上的事件響應(yīng)(圖形界面對(duì)象上的動(dòng)作)5面向?qū)ο蟮膱D形用戶界面面向?qū)ο蟮膱D形用戶界面:基于“面向?qū)ο竺嫦驅(qū)ο蟆钡乃枷牖ハ嘟粨Q信息,即盡可能在屏幕上用形象的圖標(biāo)和窗口等來代表有用的資源和可啟用的對(duì)象。圖形界面對(duì)象:圖形界面對(duì)象:代表特定的軟件、命令、過程、資源、提示信息等q 圖標(biāo)(Icon)q 窗口(Window)
3、q 菜單(Menu)/菜單項(xiàng)(Menu Item)q 按鈕(Button)、文本框(Label)、列表框(List)q Java提供的兩個(gè)處理圖形用戶界面的類庫提供的兩個(gè)處理圖形用戶界面的類庫 java. awt包包 和和 javax. swing包包 5抽象窗口抽象窗口工具集工具集awt的擴(kuò)展,根據(jù)的擴(kuò)展,根據(jù)給定環(huán)境調(diào)整外觀給定環(huán)境調(diào)整外觀和感覺。和感覺。6Swing與AWT之間的關(guān)系Swing誕生之前,Java中用來進(jìn)行圖形用戶界面開發(fā)的工具包為AWT。AWT是“Abstract Window Toolkit”的縮寫,又稱為“抽象窗體工具包”。AWT是隨早期Java一起發(fā)布的GUI工具包
4、,是所有Java版本中都包含的基本GUI工具包,其中不僅提供了基本的控件,并且還提供了豐富的事件處理接口。Swing是繼AWT之后Sun推出的又一款GUI工具包。Swing建立在AWT 1.1基礎(chǔ)上的,也就是說,AWT是Swing大廈的基石。7關(guān)于Swing與AWT控件的混用由于AWT中提供的控件,均依賴本地系統(tǒng)實(shí)現(xiàn),而Swing控件屬于輕量級(jí)控件,是由純Java編寫的,使用基本圖形元素直接在屏幕上繪制,因此在搭建界面時(shí),如果將二者同時(shí)使用,就有可能會(huì)出現(xiàn)遮擋的現(xiàn)象。8AWT(Abstract Window Toolkit)組件組件 java.awt及相關(guān)包中包含了一個(gè)完整的類集類集以支持GU
5、I程序的設(shè)計(jì),其中的類及相互關(guān)系可以用下圖來描述(重量級(jí)構(gòu)件):事件類字體類GraphicsComponent顏色類布局管理類java.lang.ObjectCheckboxContainerButtonWindowPanelAppletDialogFrameList圖象類菜單類9 AWT使用Container類來定義最基本的組件容器,它有兩個(gè)常用的子類:Window類和Panel類。Window類還有兩個(gè)子類: 定義對(duì)話框,用Dialog子類。Java還提了一個(gè)Dialog的子類FileDialog,用它生成文件對(duì)話框。 定義一般意義的窗口,用Frame類。 Frame可以用其構(gòu)造方法Fam
6、e(String)來生成,其標(biāo)題由String參數(shù)指定。一個(gè)Frame剛被創(chuàng)建后,其初始大小為(0,0),而且是不可見的,所以為了使Frame顯示出來,必須在程序中顯式地設(shè)置一下它的大小。AWT組件組件10 Panel可以使程序員更方便地組織自己的組件,得到賞心悅目的布局。 Panel可以使用構(gòu)造方法Panel()生成,當(dāng)一個(gè)Panel對(duì)象被創(chuàng)建后,必須放在必須放在Window和和Frame中才能可見中才能可見。使用add()方法就可以將Panel添加到其他容器中。 Applet是Panel的子類,因此在小應(yīng)用程序里可以直接加入構(gòu)件,而一般的應(yīng)用程序必須先定義構(gòu)件容器。小應(yīng)用程序在瀏覽器中所顯
7、示的區(qū)域就是Panel,所占的尺寸就是缺省的Panel尺寸(瀏覽器本身也可以看作是一個(gè)容器)。AWT組件組件11 圖形用戶界面程序的主體框架是Window類及其子類(Frame、Dialog、FileDialog),一個(gè)Window類及其子類的實(shí)例,是不能包含其他Window類及其子類的實(shí)例,但它可以彈出其他的Window類及其子類的實(shí)例(彈出新窗口)。 Panel是一個(gè)不可見的組件容器,它可以容納不同的組件,包括Panel本身(即可以嵌套包含)。但最頂層的Panel必須放在一個(gè)窗口容器中,包含在其中的所有可見組件才能顯示出來。Panel的主要作用就是為了更好地的主要作用就是為了更好地進(jìn)行圖形
8、界面對(duì)象的布局進(jìn)行圖形界面對(duì)象的布局。AWT組件組件12列表列表按鈕按鈕彈出菜單彈出菜單Container另一個(gè)另一個(gè) PanelPanelContainerComponent窗口及其子類窗口及其子類按鈕按鈕菜單菜單Container彈出彈出13圖形界面設(shè)計(jì)的步驟圖形界面設(shè)計(jì)的步驟 創(chuàng)建組件創(chuàng)建組件(Component)(Component):創(chuàng)建組成界面的各種元:創(chuàng)建組成界面的各種元素,如按鈕、文本框等。素,如按鈕、文本框等。 指定布局指定布局(Layout)(Layout):根據(jù)具體需要排列界面上各:根據(jù)具體需要排列界面上各元素的位置關(guān)系。元素的位置關(guān)系。 響應(yīng)事件響應(yīng)事件(Event)(
9、Event):定義圖形用戶界面的事件和:定義圖形用戶界面的事件和各界面元素對(duì)不同事件的響應(yīng),從而實(shí)現(xiàn)圖形用各界面元素對(duì)不同事件的響應(yīng),從而實(shí)現(xiàn)圖形用戶界面與用戶的交互功能。戶界面與用戶的交互功能。14import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame public MyFrame(String str) super(str); addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e) Syst
10、em.exit(0); ); public void showDialog() FileDialog fd = new FileDialog(this, FileDialog); fd.setVisible(true); public static void main(String args) MyFrame fr = new MyFrame(Frame and FileDialog Test); fr.setSize(500,500); fr.setBackground(Color.blue); fr.setVisible(true); fr.showDialog(); MyFrame.ja
11、va彈出新窗口彈出新窗口15public class MyPanelInFrame extends Framepublic class MyPanelInFrame extends Frame public MyPanelInFrame(String str) public MyPanelInFrame(String str) super(str); super(str); addWindowListener( new WindowAdapter() addWindowListener( new WindowAdapter() public void windowClosing(WindowE
12、vent e) public void windowClosing(WindowEvent e) System.exit(0); System.exit(0); ); ); public static void main(String args) public static void main(String args) MyPanelInFrame fr = new MyPanelInFrame(Panel in Frame); MyPanelInFrame fr = new MyPanelInFrame(Panel in Frame); Panel pan = new Panel(); Pa
13、nel pan = new Panel(); fr.setSize(500,500); fr.setSize(500,500); fr.setBackground(Color.green); fr.setBackground(Color.green); fr.setLayout(null); fr.setLayout(null); pan.setSize(200,200); pan.setSize(200,200); pan.setBackground(Color.yellow); pan.setBackground(Color.yellow); pan.setLocation(100,100
14、); pan.setLocation(100,100); Button b1 = new Button(Help); Button b1 = new Button(Help); Button b2 = new Button(Test); Button b2 = new Button(Test); pan.add(b1); pan.add(b1); pan.add(b2); pan.add(b2); fr.add(pan); fr.setVisible(true); MyPanelInFrame.java窗口中包含窗口中包含Panel1212.2.2圖圖形用形用戶戶界面工具包界面工具包Swing
15、Swing16組件組件:構(gòu)成圖形用戶界面的各種元素。:構(gòu)成圖形用戶界面的各種元素。構(gòu)建圖形用戶界面的類可以分成三組:容器類構(gòu)建圖形用戶界面的類可以分成三組:容器類(container class)(container class)、輔助類、輔助類(helper class)(helper class)和組件和組件類類(component class)(component class)。容器類容器類 容器又分為兩種:頂層容器和非頂層容器。頂層容器又分為兩種:頂層容器和非頂層容器。頂層容器是可以獨(dú)立的窗口,容器是可以獨(dú)立的窗口,SwingSwing的頂層容器有的頂層容器有JFrameJFrame、
16、JAppletJApplet和和JDialogJDialog等;非頂層容器,不等;非頂層容器,不是獨(dú)立的窗口,它們必須位于窗口之內(nèi),非頂層是獨(dú)立的窗口,它們必須位于窗口之內(nèi),非頂層容器包括容器包括JPanelJPanel及及JScrollPanelJScrollPanel等。等。17輔助類輔助類輔助類是用來描述組件屬性的,輔助類通常包含在輔助類是用來描述組件屬性的,輔助類通常包含在java.awtjava.awt包中包中。組件類組件類所有所有Swing GUISwing GUI組件類(除組件類(除JFrameJFrame、JAppletJApplet和和JDialogJDialog)都是)都是
17、JComponentJComponent類的子類,例如,類的子類,例如,JButtonJButton、JTextFieldJTextField、JTextAreaJTextArea、JComboBoxJComboBox、JListJList、JRadioButtonJRadioButton和和JMenuJMenu等。等。18njavax.swing包中包含了存java的完整的類集以支持GUI程序的設(shè)計(jì)(輕量級(jí)構(gòu)件)njava.lang.Objectnjava.awt.Componentnjava.awt.Containernjavax.swing.JComponentn.1212.2.1 .2
18、.1 SwingSwing組件組件nJLabel顯示一行文字,可帶圖標(biāo)nJTextField 用戶讓用戶輸入一行文字的構(gòu)件nJButton用于點(diǎn)擊執(zhí)行命令nJCheckBox標(biāo)記狀態(tài)nJRadioButton 標(biāo)記多狀態(tài)nJCombox下拉列表框供選取nJList一組列表項(xiàng)供選擇19 Java中所有的中所有的Swing控件都繼承自控件都繼承自javax.swing.Jcomponent 類,類,而而JComponent類則繼承自類則繼承自java.awt.Container類,因此所有的類,因此所有的Swing控件都具有控件都具有 AWTAWT容器容器 的功能。的功能。列表列表按鈕按鈕菜單菜單
19、JContainer另一個(gè)窗口另一個(gè)窗口窗口,對(duì)話框窗口,對(duì)話框JContainerJComponentSwingSwing容器的層次關(guān)系容器的層次關(guān)系一般的一般的SwingSwing窗口,實(shí)際上包含幾個(gè)窗口,實(shí)際上包含幾個(gè)“層次層次”。框架類框架類JFrameJFrame它是它是JavaJava應(yīng)用程序的頂層容器。應(yīng)用程序的頂層容器。面板類面板類JpanelJpanel面板是一種沒有標(biāo)題欄、沒有邊框的中間層容器,面板是一種沒有標(biāo)題欄、沒有邊框的中間層容器,面板不是頂層容器,必須放到其他容器內(nèi),也面板不是頂層容器,必須放到其他容器內(nèi),也可以放入另一個(gè)面板內(nèi)??梢苑湃肓硪粋€(gè)面板內(nèi)。20例例12.
20、1例例12.2211212.2.2 .2.2 顏顏色色類類、字體、字體類與圖標(biāo)類類與圖標(biāo)類顏色類顏色類ColorColor 屬于屬于java.awtjava.awt 每種顏色均看作是由紅每種顏色均看作是由紅(R)(R)、綠、綠(G)(G)、藍(lán)、藍(lán)(B)(B)三色組成。三色組成。 構(gòu)造方法:構(gòu)造方法: Color (int r, int g, int b)Color (int r, int g, int b) 顏色變量顏色變量字體類字體類FontFont 用來規(guī)范組件所用的字體樣式、大小與字形等。用來規(guī)范組件所用的字體樣式、大小與字形等。 構(gòu)造方法:構(gòu)造方法: Font (String font
21、_name, int style, int size) Font (String font_name, int style, int size)字體名稱字體名稱字形樣式:字形樣式:PLAIN、BOLD、ITALIC字號(hào)大小字號(hào)大小22圖像圖標(biāo)類圖像圖標(biāo)類ImageIconImageIconJavaJava語言使用語言使用javax.swing.ImageIconjavax.swing.ImageIcon類表類表示圖標(biāo)。示圖標(biāo)。ImageIconImageIcon類的常用構(gòu)造方法類的常用構(gòu)造方法( (表表12.12)12.12),ImageIconImageIcon類的常用方法類的常用方法( (
22、表表12.13) 12.13) 。231212.3 .3 創(chuàng)創(chuàng)建建組組件件1 12.3.1 2.3.1 創(chuàng)建標(biāo)簽創(chuàng)建標(biāo)簽1 12.3.2 2.3.2 創(chuàng)建命令按鈕創(chuàng)建命令按鈕1 12.3.3 2.3.3 創(chuàng)建文本編輯組件創(chuàng)建文本編輯組件1 12.3.4 2.3.4 創(chuàng)建復(fù)選框組件創(chuàng)建復(fù)選框組件241212.3.1 .3.1 標(biāo)簽標(biāo)簽JLabelJLabelJLabel JLabel (javax.swingjavax.swing) 標(biāo)簽用來在窗口中顯示文字的控件標(biāo)簽用來在窗口中顯示文字的控件 構(gòu)造方法及常用方法構(gòu)造方法及常用方法表表12.1412.14、12.1512.15 例例12.312.
23、3、12.412.425JButton JButton ( javax.swing javax.swing ) 用戶用鼠標(biāo)單擊它來控制程序運(yùn)行的流程。用戶用鼠標(biāo)單擊它來控制程序運(yùn)行的流程。 JButtonJButton創(chuàng)建后通過容器的創(chuàng)建后通過容器的add()add()將其放入容器。將其放入容器。 構(gòu)造方法及常用方法構(gòu)造方法及常用方法( (表表12.1612.16、12.17)12.17)1212.3.2 .3.2 命令按命令按鈕鈕、復(fù)選復(fù)選框和框和單選單選按按鈕鈕26import javax.swing.*; public class App12_5 extends JFrame publi
24、c static void main(String args) App12_5 jfrm=new App12_5(); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImageIcon ic=new ImageIcon(中國(guó)燈籠.jpg); JButton btn=new JButton(燈籠,ic); jfrm.setLayout(null); jfrm.setSize(200,180); jfrm.setTitle(按鈕類窗口); btn.setBounds(50,45,100,40); btn.setToolTipText(我是
25、按鈕); jfrm.add(btn); jfrm.setVisible(true); 例例12.512.527JCheckBoxJCheckBox和和JRadioButtonJRadioButton( javax.swingjavax.swing ) JCheckBoxJCheckBox可以單獨(dú)使用,而單選按鈕必須可以單獨(dú)使用,而單選按鈕必須配合配合javax.swingjavax.swing包中的包中的ButtonGroupButtonGroup類將其類將其組成單選按鈕組來使用組成單選按鈕組來使用 構(gòu)造方法及常用方法見構(gòu)造方法及常用方法見( (表表12.18)12.18) 例例12.612.
26、6復(fù)選復(fù)選框和框和單選單選按按鈕鈕281212.3.3 .3.3 文本文本編輯組編輯組件件與滾動(dòng)與滾動(dòng)窗格窗格文本文本行行組件組件JTextFieldJTextField主要用于主要用于接收用戶鍵盤接收用戶鍵盤輸入的文本輸入的文本密碼文本行組件密碼文本行組件JPasswordFieldJPasswordField主要用于輸入主要用于輸入密碼密碼文本區(qū)組件文本區(qū)組件JTextArea JTextArea 通常與通常與滾動(dòng)窗格滾動(dòng)窗格組件組件JScrollPaneJScrollPane一起使用一起使用 組件類的構(gòu)造方法及常用方法組件類的構(gòu)造方法及常用方法( (表表12.2012.24)12.201
27、2.24) 例例12.712.729import javax.swing.*; public class App12_7 extends JFrame JTextField jtf=new JTextField(該文本框不可編輯,30); static JPasswordField jpf=new JPasswordField (太空人3號(hào),30); public App12_7(String str) super(str); jtf.setBounds(20,40,140,20); jtf.setEditable(false); add(jtf); public static void ma
28、in(String args) 例例12.7 - 112.7 - 130 public static void main(String args) App12_7 frm=new App12_7(文本編輯功能窗口文本編輯功能窗口); JTextArea jta=new JTextArea (您好您好,10,30); JScrollPane jsp=new JScrollPane(jta); frm.setLocation(200,150); frm.setSize(240,220); frm.setLayout(null); jsp.setBounds(20,70,160,100); jpf.
29、setBounds(20,10,140,20); frm.add(jpf); frm.add(jsp); char password=jpf.getPassword(); String str=new String(password); System.out.println(今天口令是:今天口令是:+ password + 轉(zhuǎn)換成文本后是轉(zhuǎn)換成文本后是:+str); frm.setVisible(true); frm.setResizable(false); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 例例12.7-212.7-231
30、1212.3.4 .3.4 選項(xiàng)選項(xiàng)窗格窗格組組件件選項(xiàng)窗格選項(xiàng)窗格JTabbedPaneJTabbedPaneJTabbedPaneJTabbedPane組件中允許包含多個(gè)選組件中允許包含多個(gè)選項(xiàng)卡項(xiàng)卡, ,每個(gè)選項(xiàng)卡包含若干每個(gè)選項(xiàng)卡包含若干組件組件。JTabbedPaneJTabbedPane類的構(gòu)造方法及常用方類的構(gòu)造方法及常用方法法(表(表12.2512.25、12.2612.26) 例例12.812.8321212.4 .4 布局管理器布局管理器布局管理即頁面管理。頁面管理(布局管理即頁面管理。頁面管理(layoutlayout):):指窗指窗口上的組件遵循一定的規(guī)則來排列,并會(huì)隨
31、著窗口口上的組件遵循一定的規(guī)則來排列,并會(huì)隨著窗口大小的變化來改變組件大小與位置的一種布局方式。大小的變化來改變組件大小與位置的一種布局方式。自動(dòng)布局:當(dāng)為一個(gè)容器指定一個(gè)布局管理器后,自動(dòng)布局:當(dāng)為一個(gè)容器指定一個(gè)布局管理器后,將一個(gè)組件加入該容器中時(shí),布局管理器就能自動(dòng)將一個(gè)組件加入該容器中時(shí),布局管理器就能自動(dòng)設(shè)置該組件的大小和位置。設(shè)置該組件的大小和位置。java.awtjava.awt包中共定義了五種布局管理器,每個(gè)布局包中共定義了五種布局管理器,每個(gè)布局管理器對(duì)應(yīng)一種布局策略,分別是:流式布局管理管理器對(duì)應(yīng)一種布局策略,分別是:流式布局管理器器FlowLayoutFlowLayou
32、t、邊界式布局管理器、邊界式布局管理器BorderLayoutBorderLayout、卡片式布局管理器卡片式布局管理器CardLayoutCardLayout、網(wǎng)格式布局管理器、網(wǎng)格式布局管理器GridLayoutGridLayout和網(wǎng)袋布局管理器和網(wǎng)袋布局管理器GridBagLayoutGridBagLayout。331212.4.1 .4.1 流式布局管理器流式布局管理器FlowLayoutFlowLayout布局策略布局策略 組件按照加入容器的先后順序從左向右排列;組件按照加入容器的先后順序從左向右排列; 一行排滿后就自動(dòng)地轉(zhuǎn)到下一行繼續(xù)從左向右一行排滿后就自動(dòng)地轉(zhuǎn)到下一行繼續(xù)從左向
33、右排列;排列; 每一行中的組件都居中排列。每一行中的組件都居中排列。FlowLayoutFlowLayout布局管理器是布局管理器是PanelPanel、AppletApplet和和JPanelJPanel默認(rèn)的布局管理方式。默認(rèn)的布局管理方式。布局管理器的容器中的組件大小不隨容器大布局管理器的容器中的組件大小不隨容器大小的變化而改變小的變化而改變. .FlowLayoutFlowLayout構(gòu)造方法及常用方法構(gòu)造方法及常用方法表表12.2712.2712.2912.293434例例12.912.9import java.awt.*; import javax.swing.*;public c
34、lass App12_9 extends JFrame static JFrame frm=new JFrame(流式布局設(shè)置管理器FlowLayout); public static void main(String args) FlowLayout flow=new FlowLayout (FlowLayout.CENTER,5,10); JButton but=new JButton(按鈕); JLabel lab=new JLabel(我是一個(gè)標(biāo)簽); frm.setLayout(flow); frm.setSize(260,150); frm.add(but); frm.add(la
35、b); frm.add(new JTextField(流式布局策略FlowLayout,18); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(true); 351212.4.2 .4.2 邊邊界式布局管理器界式布局管理器BorderLayoutBorderLayout將顯示區(qū)域按地理方位分為東將顯示區(qū)域按地理方位分為東(East)(East)、西、西(West)(West)、 南南(South)(South)、北、北(North)(North)、中、中(Center)(Center)五個(gè)區(qū)域五個(gè)區(qū)域。將組
36、件加入容器中,若沒有指定區(qū)域,則默認(rèn)為將組件加入容器中,若沒有指定區(qū)域,則默認(rèn)為 中間;若將組件加入到已被占用的位置,將會(huì)中間;若將組件加入到已被占用的位置,將會(huì)取代原先的組件。取代原先的組件。利用利用add()add()添加組件時(shí)必須指出組件的擺放位置。添加組件時(shí)必須指出組件的擺放位置。構(gòu)造方法及常用方法構(gòu)造方法及常用方法表表12.3012.3012.3212.3236import java.awt.*; import javax.swing.*;public class App12_10 extends JFrame static JFrame frm=new JFrame(邊界式布局管理
37、器BorderLayout); public static void main(String args) BorderLayout border=new BorderLayout (5,10); frm.setLayout(border); frm.setSize(330,200); frm.add(new JButton(上北), BorderLayout.NORTH); frm.add(new JButton(下南), BorderLayout.SOUTH); frm.add(new JButton(左西), BorderLayout.WEST); frm.add(new JButton(
38、右東), BorderLayout.EAST); frm.add(new JButton(中央), BorderLayout.CENTER); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(true); 例例12.1012.10371212.4.3 .4.3 網(wǎng)網(wǎng)格式布局管理器格式布局管理器GridLayoutGridLayout提供的頁面布局規(guī)則是將容器的空間劃分成若干行與列的網(wǎng)格提供的頁面布局規(guī)則是將容器的空間劃分成若干行與列的網(wǎng)格形式,在容器上添加組件時(shí),它們會(huì)按從左到右、從上到下的形式,在容器上添加
39、組件時(shí),它們會(huì)按從左到右、從上到下的順序在網(wǎng)格中順序在網(wǎng)格中均勻均勻排列。排列。網(wǎng)格的行數(shù)和列數(shù)可以在創(chuàng)建網(wǎng)格的行數(shù)和列數(shù)可以在創(chuàng)建GridLayoutGridLayout對(duì)象的構(gòu)造方法里指對(duì)象的構(gòu)造方法里指定。若控件數(shù)正好是行定。若控件數(shù)正好是行列,則按行、列數(shù)放置;若控件數(shù)超列,則按行、列數(shù)放置;若控件數(shù)超過了行過了行列,則先滿足行。列,則先滿足行。利用利用GridLayoutGridLayout布局策略時(shí),容器中各組件的寬度相同,所有布局策略時(shí),容器中各組件的寬度相同,所有組件的高度也相同,當(dāng)容器尺寸發(fā)生變化時(shí),各組件的相對(duì)位組件的高度也相同,當(dāng)容器尺寸發(fā)生變化時(shí),各組件的相對(duì)位置不變。置不變。構(gòu)造方法及常用方法構(gòu)造方法及常用方法表表12.3312.33、12.3412.34例例12.1112.11通過行列、間距來通過行列、間距來用網(wǎng)格分割,把組用網(wǎng)格分割,把組件放入網(wǎng)格中,先件放入網(wǎng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 踩高蹺幼兒園教案
- 保護(hù)牙齒教案反思小班
- 漢真有趣說課稿
- 航空航天履約管理辦法
- 塑料大棚建設(shè)安裝協(xié)議
- 臨時(shí)醫(yī)療電源租賃合同
- 電信業(yè)不合格服務(wù)管理
- 航空航天設(shè)施保溫施工協(xié)議
- 脊椎病診斷與治療
- 研發(fā)項(xiàng)目保密規(guī)則
- 工程項(xiàng)目審核現(xiàn)場(chǎng)踏勘記錄表
- DL∕T 698.45-2017 電能信息采集與管理系統(tǒng) 第4-5部分:通信協(xié)議-面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議
- 2021年11月廣州市增城區(qū)(衛(wèi)生類)招聘考試《護(hù)理學(xué)》試卷
- 登革熱診療方案(衛(wèi)健委2024年版)
- 上海版小學(xué)英語單詞表
- 2024中國(guó)海油應(yīng)屆畢業(yè)生招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2024版借用公司名義簽訂合同協(xié)議
- 【超星爾雅學(xué)習(xí)通】倫理學(xué)概論(北京師范大學(xué))網(wǎng)課章節(jié)答案
- 2024年國(guó)家知識(shí)產(chǎn)權(quán)局商標(biāo)審查協(xié)作中心招聘60人【重點(diǎn)基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
- 失智失能老年人的飲食照護(hù)(失智失能老人健康照護(hù)課件)
- 2025年中考數(shù)學(xué)專題09 逆等線最值專題(原卷版)
評(píng)論
0/150
提交評(píng)論