Java實用教程第18講-java-swing課件_第1頁
Java實用教程第18講-java-swing課件_第2頁
Java實用教程第18講-java-swing課件_第3頁
Java實用教程第18講-java-swing課件_第4頁
Java實用教程第18講-java-swing課件_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java實用教程第18講-java-swing課件1Java實用教程第18講-java-swing課件218.1.2顯示框架

drawString(Strings,intx,inty)從參數x、y指定的坐標位置處,從左向右繪制參數s指定的字符串。drawChars(chardata[],intoffset,intlength,intx,inty)繪制data數組中的部分字符,length指定數組中要連續(xù)繪制的字符的個數,offset是首字符在數組中的位置。18.1.2顯示框架

drawString(String318.2容器

容器是用來盛裝其它GUI組件的GUI組件,AWT中的容器類有Window、Panel、Applet、Frame、dialog等,而Swing容器類有JFrame、JWindow、JDialog、JApplet、JPanel等。本節(jié)介紹幾種常用的Swing容器。18.2容器

容器是用來盛裝其它GUI組件的GUI組件,A418.2.1頂層容器

Swing中的JFrame、JDialog、JApplet和JWindow直接繼承了AWT組件,它們是重量級的,被稱為頂層容器。(1)JFrame繼承自AWT中的Frame類,通常作為主窗體使用。(2)JDialog用于創(chuàng)建對話框,對話框不能單獨存在,必須借助于窗體。(3)JApplet可作為Java小應用程序的窗體,被嵌入到網頁中運行。(4)JWindow與JFrame類似,所不同的是JWindow沒有用于默認關閉操作或是菜單欄的屬性。18.2.1頂層容器

Swing中的JFrame、JDia518.2.2中間層容器

有些容器不能直接顯示到電腦屏幕上,必須放置到頂層容器或其它容器中,它們存在的目的是放置各種組件。常用的中間層容器有JPanel、JScrollPane、JSplitPane、JToolBar、JInternalFrame、JLayeredPane、JRootPane、JTabbedPane18.2.2中間層容器

有些容器不能直接顯示到電腦屏幕上,6(1)JPanelJPanel(面板)常用來放置其它輕量級組件。默認狀態(tài)下,它不繪制任何東西,可以很容易的為其設置邊框,也可以嵌套使用。(2)JScrollPaneJScrollPane(滾動面板)JScrollPane包括九個部分:一個中心顯示區(qū)、四個角和四條邊(3)JSplitPaneJSplitPane(分割面板)是一個可以被分成兩個顯示區(qū)域的面板,分割方式可以是水平分割,也可以是垂直分割。如果設置了動態(tài)拖拽功能,則拖動分割線時兩邊組件會隨著拖拽動態(tài)改變大小。通常先把組件放到JScrollPane中,再把JScrollPane放到JSplitPane中,這樣每個窗口都可以拖動滾動條看到組件的全部內容。(1)JPanel(2)JScrollPane(3)JSpl7(4)JTabbedPaneJTabbedPane(頁簽面板)可以在窗體上顯示多個控件。可以將不同類別的控件放到不同的Tab頁上,然后通過需要點擊相應的Tab頁。可以通過

setTabComponentAt方法將控件放到Tab上。(5)JLayeredPane(6)JInternalFrameJInternalFrame(內部窗體)具有最大化、最小化、關閉、加入菜單等功能。JInternalFrame是輕量級組件,不能單獨顯示為了方便管理,一般會將JInternalFrame加入JDesktopPane中,JDesktopPane是一種特殊的分層面板,是JLayeredPane子類,用來建立虛擬桌面(Vitual

Desktop).它可以顯示并管理眾多JInternalFrame之間的層次關系。(4)JTabbedPane(5)JLayeredPane(8(7)JOptionPaneJOptionPane(選擇面板)能夠方便地彈出滿足用戶要求的各種類型對話框。此類中包含showXxxDialog()方法:1)showConfirmDialog()方法:顯示確認對話框;2)showInputDialog()方法:顯示輸入對話框;3)showMessageDialog()方法:顯示消息對話框;4)showOptionDialog()方法:顯示選擇對話框。(7)JOptionPane918.3布局管理

Java為了實現跨平臺的特性并且獲得動態(tài)的布局效果,采用布局管理器對容器中的組件進行布局。Java定義了多種布局管理器,通過布局管理器之間的組合,能夠設計出復雜的界面,而且在不同操作系統平臺上都能夠有一致的顯示界面。18.3布局管理

Java為了實現跨平臺的特性并且獲得動1018.3.1BorderLayout

BorderLayout是JFrame的默認布局,可以直接通過add()方法為其添加組件,默認情況下組件被放在JFrame的中心位置,并且組件向四周擴展,占滿整個JFrame,BorderLayout的特點:(1)把容器分為五個方位:東、西、南、北、中,組件按照方位被添加到容器。(2)組件的大小占滿整個所屬方位,組件的大小隨著容器的變化而變化。(3)如果不指定方位,組件默認被添加到容器的中心位置,并且占滿整個容器。18.3.1BorderLayout

BorderLayo1118.3.2FlowLayout

FlowLayout是JPanel的默認布局方式。使用FlowLayout布局方式的容器中,組件按照加入的先后順序按照設置的對齊方式(居中、左對齊、右對齊)從左向右排列,一行排滿后再從下一行開始繼續(xù)排列。在這種布局方式中,組件的大小不會隨著容器大小的變化而改變,其位置可能會發(fā)生改變。18.3.2FlowLayout

FlowLayout是J1218.3.3GirdLayout

GridLayout是把容器分成M×N個網格,M是行數,N是列數,M和N的值可以在創(chuàng)建GridLayout的對象時確定。組件按照從左到右,從上到下的順序放入容器,容器大小改變時,組件的相對位置不變,大小會改變。18.3.3GirdLayout

GridLayout是把1318.3.4CardLayout

CardLayout是把容器分成多張卡片,每個組件占用一張卡片,組件之間的關系就像一副牌,疊在一起。初始時顯示第一張卡片,通過CardLayout類提供的first()方法可以切換到第一張卡片,last()方法可以切換到最后一張卡片,next()方法可以切換到下一張卡片18.3.4CardLayout

CardLayout是把1418.3.5BoxLayout

BoxLayout

可以通過參數

X_AXIS、Y_AXIS把控件進行水平或者垂直排列布局,X_AXIS

表示水平排列,Y_AXIS表示垂直排列。BoxLayout

的構造函數有兩個參數,一個參數定義使用該

BoxLayout

的容器,另一個參數是指定

BoxLayout

是采用水平還是垂直排列。當BoxLayout進行布局時,假如布局的整個水平或者垂直空間的尺寸不能放下所有控件,那么BoxLayout會試圖調整各個控件的大小來填充整個布局的水平或者垂直空間。BoxLayout往往和Box這個容器結合在一起使用Box類的靜態(tài)方法createHorizontalBox()可以獲得一個水平存放組件的Box對象。靜態(tài)方法createVerticalBox()可以獲得一個可以豎直存放組件的Box對象。18.3.5BoxLayout

BoxLayout可以通1518.3.6絕對布局

每個組件(包括容器)都是一個矩形區(qū)域,該矩形區(qū)域的左上角為坐標原點(0,0),x軸向右增大,y軸向下增大使用絕對布局的操作步驟:(1)首先利用setLayout(null)語句將容器的布局設置為null布局(空布局);(2)再調用組件的setBounds(intx,inty,intwidth,intheight)方法,設置組件在容器中的大小和位置,單位均為像素。18.3.6絕對布局

每個組件(包括容器)都是一個矩形區(qū)域1618.4基本組件

因為所有輕量級組件類都繼承于JComponent,而JComponent類又是Container類的子類,因此,所有的Swing組件都可作為容器使用。本節(jié)只介紹常用的幾種基本組件。18.4基本組件

因為所有輕量級組件類都繼承于JCompo1718.4.1AbstractButton

Swing中許多類型的按鈕,包括復選框、單選按鈕等,都是從AbstractButton類繼承而來的??梢允褂胹etBorder()方法為組件添加邊框,還可以把單選按鈕添加到按鈕組中。18.4.1AbstractButton

Swing中許多1818.4.2菜單

下拉式菜單也是從AbstractButton繼承而來,而彈出式菜單繼承于JComponent類。在使用下拉式菜單時,必須為容器設置菜單條,然后把菜單添加到菜單條上,把菜單項添加到菜單上。在使用彈出式菜單時,必須結合鼠標事件顯示。18.4.2菜單

下拉式菜單也是從AbstractButt1918.4.3標簽和文本編輯組件

JLabel(標簽)用于顯示文本或圖像。可以通過設置垂直和水平對齊方式,指定標簽顯示區(qū)中標簽內容在何處對齊。默認情況下,只顯示文本的標簽是開始邊對齊,而只顯示圖像的標簽則水平居中對齊。18.4.3標簽和文本編輯組件

JLabel(標簽)用于顯2018.4.4組合框和列表框

用戶可以從JComboBox(組合框,也稱下拉列表)中列出的一組元素中選擇一個,而且只能選一個。而JList(列表框)與組合框完全不同,可以進行多重選擇,并且其在屏幕上可以占據固定行數的空間,JList不實現直接滾動。要創(chuàng)建一個滾動的列表,要將它添加到JScrollPane中。18.4.4組合框和列表框

用戶可以從JComboBox(2118.4.5滑塊和進度條

通過JSlider(滑塊)的前后移動來控制數據的輸入有時能使某種操作更直觀,如音量的控制。JProgressBar(進度條)能夠動態(tài)的顯示的數據的狀態(tài)。18.4.6選擇框JFileChooser(文件對話框)支持打開和保存文件,使文件操作更方便,但要真正打開和保存文件,還要結合I/O操作。JColorChooser(顏色選擇對話框)是Java中已經定義好的顏色選擇器,通過它可以很方便的得到各種顏色。18.4.5滑塊和進度條

通過JSlider(滑塊)的前后2218.4.7表格和樹

JTable(表格)是數據的視圖。JTree

(樹)一個

JTree

對象只是提供了數據的視圖,

通過查詢其數據模型可獲得數據。樹中顯示的每一行包含一項數據,稱之為節(jié)點(

node

)。每顆樹有一個根節(jié)點(

rootnode

),其他節(jié)點都是它的子孫。分支節(jié)點可以有任意多個孩子。18.4.7表格和樹

JTable(表格)是數據的視圖。2318.5本講小結

本講首先講述了Swing的基礎知識,然后對容器、布局管理進行了介紹,最后講述了幾種常用的組件。18.5本講小結

本講首先講述了Swing的基礎知識,然后24講后練習

1、編寫程序實現下面的界面。講后練習

1、編寫程序實現下面的界面。25Java實用教程第18講-java-swing課件26Java實用教程第18講-java-swing課件2718.1.2顯示框架

drawString(Strings,intx,inty)從參數x、y指定的坐標位置處,從左向右繪制參數s指定的字符串。drawChars(chardata[],intoffset,intlength,intx,inty)繪制data數組中的部分字符,length指定數組中要連續(xù)繪制的字符的個數,offset是首字符在數組中的位置。18.1.2顯示框架

drawString(String2818.2容器

容器是用來盛裝其它GUI組件的GUI組件,AWT中的容器類有Window、Panel、Applet、Frame、dialog等,而Swing容器類有JFrame、JWindow、JDialog、JApplet、JPanel等。本節(jié)介紹幾種常用的Swing容器。18.2容器

容器是用來盛裝其它GUI組件的GUI組件,A2918.2.1頂層容器

Swing中的JFrame、JDialog、JApplet和JWindow直接繼承了AWT組件,它們是重量級的,被稱為頂層容器。(1)JFrame繼承自AWT中的Frame類,通常作為主窗體使用。(2)JDialog用于創(chuàng)建對話框,對話框不能單獨存在,必須借助于窗體。(3)JApplet可作為Java小應用程序的窗體,被嵌入到網頁中運行。(4)JWindow與JFrame類似,所不同的是JWindow沒有用于默認關閉操作或是菜單欄的屬性。18.2.1頂層容器

Swing中的JFrame、JDia3018.2.2中間層容器

有些容器不能直接顯示到電腦屏幕上,必須放置到頂層容器或其它容器中,它們存在的目的是放置各種組件。常用的中間層容器有JPanel、JScrollPane、JSplitPane、JToolBar、JInternalFrame、JLayeredPane、JRootPane、JTabbedPane18.2.2中間層容器

有些容器不能直接顯示到電腦屏幕上,31(1)JPanelJPanel(面板)常用來放置其它輕量級組件。默認狀態(tài)下,它不繪制任何東西,可以很容易的為其設置邊框,也可以嵌套使用。(2)JScrollPaneJScrollPane(滾動面板)JScrollPane包括九個部分:一個中心顯示區(qū)、四個角和四條邊(3)JSplitPaneJSplitPane(分割面板)是一個可以被分成兩個顯示區(qū)域的面板,分割方式可以是水平分割,也可以是垂直分割。如果設置了動態(tài)拖拽功能,則拖動分割線時兩邊組件會隨著拖拽動態(tài)改變大小。通常先把組件放到JScrollPane中,再把JScrollPane放到JSplitPane中,這樣每個窗口都可以拖動滾動條看到組件的全部內容。(1)JPanel(2)JScrollPane(3)JSpl32(4)JTabbedPaneJTabbedPane(頁簽面板)可以在窗體上顯示多個控件??梢詫⒉煌悇e的控件放到不同的Tab頁上,然后通過需要點擊相應的Tab頁??梢酝ㄟ^

setTabComponentAt方法將控件放到Tab上。(5)JLayeredPane(6)JInternalFrameJInternalFrame(內部窗體)具有最大化、最小化、關閉、加入菜單等功能。JInternalFrame是輕量級組件,不能單獨顯示為了方便管理,一般會將JInternalFrame加入JDesktopPane中,JDesktopPane是一種特殊的分層面板,是JLayeredPane子類,用來建立虛擬桌面(Vitual

Desktop).它可以顯示并管理眾多JInternalFrame之間的層次關系。(4)JTabbedPane(5)JLayeredPane(33(7)JOptionPaneJOptionPane(選擇面板)能夠方便地彈出滿足用戶要求的各種類型對話框。此類中包含showXxxDialog()方法:1)showConfirmDialog()方法:顯示確認對話框;2)showInputDialog()方法:顯示輸入對話框;3)showMessageDialog()方法:顯示消息對話框;4)showOptionDialog()方法:顯示選擇對話框。(7)JOptionPane3418.3布局管理

Java為了實現跨平臺的特性并且獲得動態(tài)的布局效果,采用布局管理器對容器中的組件進行布局。Java定義了多種布局管理器,通過布局管理器之間的組合,能夠設計出復雜的界面,而且在不同操作系統平臺上都能夠有一致的顯示界面。18.3布局管理

Java為了實現跨平臺的特性并且獲得動3518.3.1BorderLayout

BorderLayout是JFrame的默認布局,可以直接通過add()方法為其添加組件,默認情況下組件被放在JFrame的中心位置,并且組件向四周擴展,占滿整個JFrame,BorderLayout的特點:(1)把容器分為五個方位:東、西、南、北、中,組件按照方位被添加到容器。(2)組件的大小占滿整個所屬方位,組件的大小隨著容器的變化而變化。(3)如果不指定方位,組件默認被添加到容器的中心位置,并且占滿整個容器。18.3.1BorderLayout

BorderLayo3618.3.2FlowLayout

FlowLayout是JPanel的默認布局方式。使用FlowLayout布局方式的容器中,組件按照加入的先后順序按照設置的對齊方式(居中、左對齊、右對齊)從左向右排列,一行排滿后再從下一行開始繼續(xù)排列。在這種布局方式中,組件的大小不會隨著容器大小的變化而改變,其位置可能會發(fā)生改變。18.3.2FlowLayout

FlowLayout是J3718.3.3GirdLayout

GridLayout是把容器分成M×N個網格,M是行數,N是列數,M和N的值可以在創(chuàng)建GridLayout的對象時確定。組件按照從左到右,從上到下的順序放入容器,容器大小改變時,組件的相對位置不變,大小會改變。18.3.3GirdLayout

GridLayout是把3818.3.4CardLayout

CardLayout是把容器分成多張卡片,每個組件占用一張卡片,組件之間的關系就像一副牌,疊在一起。初始時顯示第一張卡片,通過CardLayout類提供的first()方法可以切換到第一張卡片,last()方法可以切換到最后一張卡片,next()方法可以切換到下一張卡片18.3.4CardLayout

CardLayout是把3918.3.5BoxLayout

BoxLayout

可以通過參數

X_AXIS、Y_AXIS把控件進行水平或者垂直排列布局,X_AXIS

表示水平排列,Y_AXIS表示垂直排列。BoxLayout

的構造函數有兩個參數,一個參數定義使用該

BoxLayout

的容器,另一個參數是指定

BoxLayout

是采用水平還是垂直排列。當BoxLayout進行布局時,假如布局的整個水平或者垂直空間的尺寸不能放下所有控件,那么BoxLayout會試圖調整各個控件的大小來填充整個布局的水平或者垂直空間。BoxLayout往往和Box這個容器結合在一起使用Box類的靜態(tài)方法createHorizontalBox()可以獲得一個水平存放組件的Box對象。靜態(tài)方法createVerticalBox()可以獲得一個可以豎直存放組件的Box對象。18.3.5BoxLayout

BoxLayout可以通4018.3.6絕對布局

每個組件(包括容器)都是一個矩形區(qū)域,該矩形區(qū)域的左上角為坐標原點(0,0),x軸向右增大,y軸向下增大使用絕對布局的操作步驟:(1)首先利用setLayout(null)語句將容器的布局設置為null布局(空布局);(2)再調用組件的setBounds(intx,inty,intwidth,intheight)方法,設置組件在容器中的大小和位置,單位均為像素。18.3.6絕對布局

每個組件(包括容器)都是一個矩形區(qū)域4118.4基本組件

因為所有輕量級組件類都繼承于JComponent,而JComponent類又是Container類的子類,因此,所有的Swing組件都可作為容器使用。本節(jié)只介紹常用的幾種基本組件。18.4基本組件

因為所有輕量級組件類都繼承于JCompo4218.4.1AbstractButton

Swing中許多類型的按鈕,包括復選框、單選按鈕等,都是從AbstractButton類繼承而來的??梢允褂胹etBorder()方法為組件添加邊框,還可以把單選按鈕添加到按鈕組中。18.4.1AbstractButton

Swing中許多4318.4.2菜單

下拉式菜單也是從AbstractButton繼承而來,而彈出式菜單繼承于JComponent類。在使用下拉式菜單時,必須為容器設置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論