java中容器(頂層容器和中間容器)的布局管理器詳解
java容器(頂層容器和中間容器)的布局管理器
Java能夠以像素為單位對(duì)組件進(jìn)行精確的定位,但是其在不同的系統(tǒng)中將會(huì)有一定的顯示差異,使得顯示效果不同,為此java提供了布局管理器,使編寫的圖形界面具有良好的平臺(tái)無(wú)關(guān)性。
注意:所有的布局管理器均是針對(duì)容器來(lái)使用的,包括頂層容器和中間容器。
一、布局管理器所屬類包
所屬類包 | 布局管理器名稱 | 說(shuō)明 |
---|---|---|
Java.awt | FlowLayout(流式布局) | 組件按照加入的先后順序按照設(shè)置的對(duì)齊方式從左向右排列,一行排滿到下一行開(kāi)始繼續(xù)排列 |
Java.awt | BorderLayout(邊界布局) | 容器劃分為東、西、南、北、中五個(gè)區(qū)域,每個(gè)區(qū)域只能放置一個(gè)組件。 |
Java.awt | GridLayout(網(wǎng)格布局) | 容器的空間劃分成M×N列的網(wǎng)格區(qū)域, 每個(gè)區(qū)域只能放置一個(gè)組件。 |
Java.awt | CardLayout(卡片布局) | 如同一疊牌,每個(gè)牌對(duì)應(yīng)一個(gè)組件,但每次只能顯示其中的一張牌。適用于在一個(gè)空間中防止多個(gè)組件的情況 |
Java.awt | GridBagLayout(網(wǎng)格包布局) | GridLayout的升級(jí)版,組件仍然是按照行、列放置,但是每個(gè)組件可以占據(jù)多個(gè)網(wǎng)格 |
Java.swing | BoxLayout(箱式布局) | 允許在容器中縱向或者橫向防止多個(gè)控件 |
Java.swing | SprigLayout(彈簧布局) | 根據(jù)一組約束條件放置控件 |
無(wú) | 空布局 | 不使用布局管理器,按照控件自身提供的大小、位置信息放置控件 |
二、容器的默認(rèn)布局管理器
容器 | 默認(rèn)布局方式 | |
---|---|---|
頂層容器 | JFrame | BorderLayout(邊界布局) |
頂層容器 | JDialog | BorderLayout(邊界布局) |
頂層容器 | JApplet | FlowLayout(流式布局) |
中間容器 | JPanel | FlowLayout(流式布局) |
java常用的四大容器總結(jié)
一、為什么要使用容器(集合類)?
1.需求:某些時(shí)候,我們需要在任意時(shí)刻和任意位置創(chuàng)建任意數(shù)量的對(duì)象。
2.數(shù)據(jù)的缺陷1,具有固定的尺寸,而在實(shí)際的使用中我們不好估計(jì)自己需要多少的對(duì)象。數(shù)組的缺陷2,沒(méi)法支持更加復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
3.Java中容器的好處就是在于可以自動(dòng)地調(diào)整自己的尺寸大小。在實(shí)際的編程中可以往容器中放置任何數(shù)量的對(duì)象,而不用擔(dān)心容器應(yīng)該設(shè)置成多大。
4.不同的容器還有其特殊的屬性。
二、Java中四大容器的簡(jiǎn)介與區(qū)別
List
:特定順序保存一組數(shù)據(jù)。Set
:集合;不允許有重復(fù)的數(shù)據(jù)。Queue
:隊(duì)列:在一端插入數(shù)據(jù),一端彈出數(shù)據(jù)。Map
:關(guān)聯(lián)數(shù)據(jù),字典。存儲(chǔ)一組(Key-Value)值。
區(qū)別:
List
:可以存儲(chǔ)重復(fù)數(shù)組,基于數(shù)組或者鏈表實(shí)現(xiàn)。Set
:不可以存儲(chǔ)重復(fù)元素,基于Map實(shí)現(xiàn)。Map
:鍵值對(duì)方式存儲(chǔ),存儲(chǔ)的鍵的不能重復(fù),基于哈希表或者紅黑色實(shí)現(xiàn)。
三、Java的容器體系
總體上可以分為兩類:
一類是Collection:一個(gè)獨(dú)立元素的序列,另一類是Map:一對(duì)鍵值對(duì)的對(duì)象。
Collection接口包括List接口、Queue接口、Set接口。其中List接口包括ArrayList類和LinkedList實(shí)現(xiàn)類。Queue接口包括Deque接口和PriorityQueue實(shí)現(xiàn)類。Set接口包括HashSet實(shí)現(xiàn)類,SortedSet接口。
Map接口包括HashMap實(shí)現(xiàn)類,TreeHashMap實(shí)現(xiàn)類。其中HashMap實(shí)現(xiàn)類包括LinkedHashMap子類。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)樹形結(jié)構(gòu)管理的組合設(shè)計(jì)模式
Java組合模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。組合模式使得用戶可以使用統(tǒng)一的方式處理單個(gè)對(duì)象和對(duì)象組合,從而簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)和維護(hù)2023-04-04spring的TransactionalEventListener事務(wù)感知源碼解析
這篇文章主要為大家介紹了spring的TransactionalEventListener事務(wù)感知源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09詳解IntelliJ IDEA 中如何配置多個(gè)jdk版本即(1.7和1.8兩個(gè)jdk都可用)
這篇文章主要介紹了詳解IntelliJ IDEA 中如何配置多個(gè)jdk版本即(1.7和1.8兩個(gè)jdk都可用),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-11-11Java獲取網(wǎng)絡(luò)文件并插入數(shù)據(jù)庫(kù)的代碼
抓取各大網(wǎng)站的數(shù)據(jù)插入數(shù)據(jù)庫(kù),這樣就不用為沒(méi)有數(shù)據(jù)而煩惱了2010-06-06SpringBoot讀取resource目錄下文件失敗的原因及解決方案
在idea中運(yùn)行時(shí),有些resource下文件讀取工具類能夠正常獲取讀取到文件,但是通過(guò)java–jar的方式去運(yùn)行jar包,此時(shí)resource下文件讀取工具類讀取文件就失效了,本文就給大家介紹一下SpringBoot讀取resource目錄下文件失敗解決方案,需要的朋友可以參考下2023-08-08Java中new Date().getTime()指定時(shí)區(qū)的時(shí)間戳問(wèn)題小結(jié)
本文主要介紹了Java中new Date().getTime()時(shí)間戳問(wèn)題小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07淺談springboot一個(gè)service內(nèi)組件的加載順序
這篇文章主要介紹了springboot一個(gè)service內(nèi)組件的加載順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家2021-08-08