Java的图形用户界面设计课件.ppt
程式7-8為JFrame實例的內容窗格指定了一個CardLayout類型的佈局管理器,然後向其中加入了五張卡片,每張卡片都是JPanel類的一個實例,並且具有不同的背景色。每當在程式窗口按動滑鼠,下一張卡片就會顯示出來。程式7-8BoxLayout佈局管理器BoxLayout是定義在javax.swing包中的佈局管理器它將容器中的組件按水準方向排成一行或按垂直方向排成一列當組件排成一行時,每個組件可以有不同的寬度;當組件排成一列時,每個組件可以有不同的高度BoxLayout構造方法BoxLayout(Containertarget,intaxis)Container型參數target指明是為哪個容器設置此BoxLayout佈局管理器int型參數axis指明組件的排列方向,BoxLayout.X_AXIS水準方向排列BoxLayout.Y_AXIS垂直方向排列程式7-9?程式7-9 ?Box容器在javax.swing包中定義創建Box實例的靜態方法publicstaticBoxcreateHorizontalBox()使用使用水準方向的BoxLayoupublicstaticBoxcreateVerticalBox()使用垂直方向的BoxLayout創建不可見(invisible)組件的方法,可以增加可見組件之間的距離publicstaticComponentcreateHorizontalGlue()publicstaticComponentcreateVerticalGlue()publicstaticComponentcreateHorizontalStrut(intwidth)publicstaticComponentcreateVerticalStrut(intheight)publicstaticComponentcreateRigidArea(Dimensiond)程式7-10,7-11程式7-10改寫7-9,使用Box容器程式7-11演示Glue和Strut的效果GlueStrutRigidBox1是沒有添加不可見組件時的形式,Box2、3和4是分別添加了不可見組件Glue、Strut和Rigid之後的形式,從中可以看出,Glue將填滿所有剩餘水準(或垂直)空間,Strut和Rigid則具有指定的寬度(或高度)其他佈局管理器GridBagLayout佈局管理器java.awt中定義以網格為基礎,允許組件使用最適當的大小,既可以占多行,也可以占多列,各組件可以有不同的高度和寬度SpringLayout等佈局管理器javax.swing中定義不使用佈局管理器1調用容器的setLayout(null)將佈局管理器設置為空2調用組件的setBounds()方法設置組件的位置和大小不使用佈局管理器setBounds()方法的格式:setBounds(intx,inty,intwidth,intheight)前兩個int型參數設置組件的位置,後兩個int型參數設置組件的寬度和高度Java的圖形用戶介面設計AWT與SwingAWTJava抽象窗口工具集(AbstractWindowToolkit,簡稱AWT)SwingSwing屬於JavaTMFoundationClasses(簡稱JFC)的一部分,JFC包含了一組幫助程式員創建圖形用戶介面的功能。AWT功能有限,因此在後來的JDK版本中,又提供了功能更強的SwingAWT類與繼承關係ComponentContainerPanelAppletWindowFrameDialogButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他組件獨立不獨立SWING中主要類的繼承關係Swing與AWT不同Swing組件在實現時不包含任何本地(native)代碼Swing組件可以不受硬體平臺的限制,而具有更多的功能Swing被稱為“羽量級(lightweight)”組件,AWT稱為“重量級(heavyweight)”組件“重量級”組件與“羽量級”組件一同使用時,如果組件區域有重疊,則“重量級”組件總是顯示在上面Swing組件的是具有狀態(state)的組件容器Java的圖形用戶介面由組件構成,例如按鈕(button)、文本輸入框(textfi