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