Java學習筆記:GUI基礎。

原文鏈接:https://blog.csdn.net/yangbodong22011/article/details/50347675

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的卡片

四:使用面板
我們很難使用一種佈局管理器實現我們想要的效果,所以我們通常使用面板將我們能看到的區域劃分,然後在每一個部分上添加上我們想使用的組件,然後再將面板添加到框架中,所以基本步驟就是這樣創建面板->往面板上添加組件->將面板添加到框架中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章