Java學習筆記:GUI基礎。
本文鏈接:https://blog.csdn.net/yangbodong22011/article/details/50347675
一:我們使用到的java GUI的API可以分爲3種類:
- 組件類(component class)
- 容器類(container class)
- 輔助類(helper class)
1:組件類:組件類是用戶用來創建界面的,Component類的實例可以顯示在屏幕上,Component類是包含容器類的所有用戶界面的根類,JComponent是輕量級組件類的根類。
2:容器類:
容器類 | 說明 |
---|---|
java.awt.Container | 對於組件分組,Frame(框架),Panel(面板)都是它的子類 |
javax.swing.JFrame | 一個不能包含在另一個窗口的窗口,用於存放其他的組件 |
java.swing.JPanel | 可做畫圖的畫布 |
java.swing.JApplet | Applet的一個子類 |
java.swing.JDialog | 一個彈出式窗口或者消息框 |
3:輔助類:
輔助類 | 說明 |
---|---|
java.awt.Graphics | 繪製字符串,線,和簡單圖形 |
java.awt.Color | 處理顏色,爲JFrame指定背景色 |
java.awt.Font | 指定文字的字體,風格 |
java.awt.FontMetrics | 獲取字體屬性 |
java.awt.LayoutManger | 佈局管理器 |
二:框架,創建一個用戶界面需要創建一個框架來呈放用戶界面的組件。一般我們用JFrame,有了框架之後我們就可以向框架中加入組件等東西。
三:佈局管理器
就是管理我們怎樣在一個框架上佈局東西的,實際上我們先將東西按照一定規則放置在佈局管理器上,然後佈局管理器再將東西放到框架之上,然後就呈現出來了我們想要的格式。
1:FlowLayout:默認按照從左往右的順序排列組件,如果一行放不下,放到下一行。有三種對齊方式可供選擇。
UML | 作用 |
---|---|
-aligment:int | 對齊方式 LEFT=0,CENTER=1,RIGHT=2,LEADING=3 |
-hgap:int | 佈局管理器的水平間隔 |
-vgap:int | 佈局管理器的垂直間隔 |
+FlowLayout() | 默認的構造方法 |
+FlowLayout(aligment:int) | 設置默認對齊方式 |
+FlowLayout(aligment:int,hgap:int,vgap:int) | 設置對齊方式,水平間隔和垂直間隔 |
2:GridLayout:網格佈局管理器,可以指定每行每列放幾個元素,但是行的優先級比列高。
UML | 作用 |
---|---|
-rows:int | 佈局管理器中的行數比列優先 |
-columns:int | 佈局管理器的列數 |
-hgap:int | 佈局管理器的水平間隔 |
-vgap:int | 佈局管理器的垂直間隔 |
+GridLayout() | 默認的構造方法 |
+GridLayout(rows:int,columns:int) | 設置指定行數的列數的GridLayout |
+GridLayout(rows:int,columns:int,hgap:int,vgap:int) | 設置行數,列數,水平間隔和垂直間隔 |
3:BorderLayout:將容器分爲5個部分:東,南,西,北,中,可以用BorderLayout.EAST
,BorderLayout.SOUTH
,BorderLayout.WEST
,BorderLayout.NORTH
,BorderLayout.CENTER
分別設置組件的位置。
UML | 作用 |
---|---|
-hagp:int | 水平間隔 |
-vgap:int | 垂直間隔 |
+BorderLayout() | 創建一個默認的BorderLayout |
+BorderLayout(hgap:int,vgap:int) | 創建指定水平間隔和垂直間隔的管理器 |
4:cardLayout:顧名思義,就像一張張卡片一樣去管理我們的每一個Panel,像一副撲克牌,只最上面的纔會被看到。一般我們CardLayout card = new CardLayout
然後再JPanel cardPanle = new JPanel(card)
這樣cardPanel
就是一個CardLayout
的類型的了。
UML | 作用 |
---|---|
-hagp:int | 水平間隔 |
-vgap:int | 垂直間隔 |
+CardLayout() | 創建默認的佈局管理器 |
+CardLayout(hagp:int,vgap:int) | 指定水平和垂直間隔 |
+card.first(cardPanel) | 顯示cardPanel的第一張卡片 |
+card.last(cardPanel) | 顯示cardPanel的最後一張卡片 |
+card.pervious(cardPanel) | 顯示cardPanel的前一張卡片 |
+card.next(cardPanel) | 顯示cardPanel的後一張卡片 |
+card.show(cardPanel,String name) | 顯示cardpanel中名稱爲name的卡片 |
四:使用面板
我們很難使用一種佈局管理器實現我們想要的效果,所以我們通常使用面板將我們能看到的區域劃分,然後在每一個部分上添加上我們想使用的組件,然後再將面板添加到框架中,所以基本步驟就是這樣創建面板->往面板上添加組件->將面板添加到框架中
。