更新時(shí)間:2023-11-23 來源:黑馬程序員 瀏覽量:
GridBagLayout是最靈活、最復(fù)雜的布局管理器,它與GridBagLayout布局管理器類似,不同之處在于GridBagLayout允許網(wǎng)格中的組件大小各不相同,而且允許一個(gè)組件跨越一個(gè)或者多個(gè)網(wǎng)格。
使用GridBagLayout布局管理器的步驟如下。
(1)創(chuàng)建GridBagLayout布局管理器,設(shè)置容器采用該布局管理器。具體示例如下:
GridBagLayout layout = new GridbagLayout(); container.setLayout(layout);
(2)創(chuàng)建GridBagConstraints對(duì)象,并設(shè)置該對(duì)象的相關(guān)屬性(設(shè)置布局約束條件)。具體示例如下:
GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = 1; //設(shè)置網(wǎng)格的左上角橫向索引 constraints.gridy = 1; //設(shè)置網(wǎng)格的左上角縱向索引 constraints.gridwidth = 1; //設(shè)置組件橫向跨越的網(wǎng)格 constraints.gridheight = 1; //設(shè)置組件橫向跨越的網(wǎng)格
(3)調(diào)用GridBagLayout對(duì)象的setConstraints()方法,建立GridBagConstraints對(duì)象與受控組件之間的關(guān)聯(lián)。具體示例如下:
layput.setConstraints(compoent,constraints);
(4)向容器中添加組件。具體示例如下:
container.add(conponent);
GridBagConstraints對(duì)象可以重復(fù)使用。如果改變布局,只需要改變GridBagConstraints對(duì)象的屬性即可。如果要向容器中添加多個(gè)組件,則重復(fù)步驟(2)~步驟(4)。
從上面的步驟可以看出,使用GridBagLayout布局管理器的關(guān)鍵在于GridBagConstraints對(duì)象。GridBagConstraints類才是控制容器中每個(gè)組件布局的核心類,在GridBagConstraints類中有很多用于設(shè)置約束條件的屬性。GridBagConstraints類的常用屬性如表11-6所示。
表11-6 GridBagConstraints類的常用屬性
需要注意的是,如果希望組件的大小隨容器的增大而增大,必須同時(shí)設(shè)置GridBagConstraints對(duì)象的fill屬性和weightx、weighty屬性。
本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Java培訓(xùn)學(xué)院
首發(fā):https://java.itheima.com