教育路上

全國站>Java>圖形界面>java布局管理GridBagLayout
學員需求

java布局管理GridBagLayout

摘要:java布局管理GridBagLayout,GridBaglayou(網格包布局管理器) 是最靈活、最復雜的布局管理器。與 GridLayout 布局管理器類似,不同的是,它允許網格中的組件大小各不相同,而且允許一個組件跨越一個或者多個網格。。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。

2022-07-07 20:24網絡推薦

發布時間:
2022-07-07 20:24
信息來源:
網絡推薦
瀏覽次數:
1047
java布局管理GridBagLayout

GridBaglayou(網格包布局管理器) 是最靈活、最復雜的布局管理器。與 GridLayout 布局管

理器類似,不同的是,它允許網格中的組件大小各不相同,而且允許一個組件跨越一個或者多個

網格。

使用 GridBaglLayout 布局管理器的步驟如下:

(1) 創建 GridBagLayout 布局管理器,,并使容器采用該布局管理器

GridBagLayout layout=new GridBagLayout();

container.setLayout(layout);

(2) 創建 GridBagContraints 對象(布局約束條件).并設置該對象的相關屬性

GridBagConstraints constraints=new GridBagConstraints();

constraints.gridx=1; //設置網格左上角橫向索引

constraints.gridy=1; //設置網格左上角縱向索引

constraints.gridwidth=1; //設置組件橫向跨越網格

constraints.gridheight=1; //設置組件縱向跨越網格

(3) 調用 GridBagLayout 對象的 setConstraints ()方法建立 GridBagConstraints 對象和受控

組件之間的關聯

Layout.setConstraints(component,constraints);

(4) 向容器中添加組件

container.add(conponent);

GridBagConstraints 對象可以重復使用,只需要改變它的屬性即可。如果要向容器

中添加多個組件,則重復(2).(3).(4)步驟。

從上面的步驟可以看出,使用 GridBagLayout 布局管理器的關鍵在于

GridBagConstraints 對象,它才是控制容器中每個組件布局的核心類,在

GridBagConstraints 中有很多表示約束的屬性,下面對 GridBagConstraints 類的一些常

用屬性進行介紹,如表 11-3 所示。

from shengerguan

from shengerguan

表 11-3 中,列出了 GridBagConstraints 的常用屬性,其中,gridx 和 gridy 用于設置

組件左上角所在網格的橫向和縱向索引,gridwidth 和 gridheight 用于設置組件橫向、縱

向跨越幾個網格,fill 用于設置是否及如何改變組件大小,weightx 和 weighty 用于設置

組件在容器中的水平方向和垂直方向的權重。

需要注意的是,如果希望組件的大小隨著容器的增大而增大,必須同時設置

GridBagConstraints 對象的 fill 屬性和 weightx.weighty 屬性。

接下來通過一個案例來演示 GridBagLayout 的用法,如例 11-11 所示。

例 11-11 Example11.java;’

import java.awt.*;

class Layout extends Frame {

public Layout(String title) {

GridBagLayout layout = new GridBagLayout();

GridBagConstraints c = new GridBagConstraints();

this.setLayout(layout);

c.fill = GridBagConstraints.BOTH; // 設置組件橫向縱向可以拉伸

c.weightx = 1; // 設置橫向權重為 1

c.weighty = 1; // 設置縱向權重為 1

this.addComponent("btn1", layout, c);

this.addComponent("btn2", layout, c);

this.addComponent("btn3", layout, c);

c.gridwidth = GridBagConstraints.REMAINDER; // 添加的組件是本行最后一個組件

this.addComponent("btn4", layout, c);

c.weightx = 0; // 設置橫向權重為 0

c.weighty = 0; // 設置縱向權重為 0

addComponent("btn5", layout, c);

c.gridwidth = 1; // 設置組件跨一個網格(默認值)

this.addComponent("btn6", layout, c);

c.gridwidth = GridBagConstraints.REMAINDER; // 添加的組件是本行最后一個組件

this.addComponent("btn7", layout, c);

c.gridheight = 2; // 設置組件縱向跨兩個網格

c.gridwidth = 1; // 設置組件橫向跨一個網格

c.weightx = 2; // 設置橫向權重為 2

c.weighty = 2; // 設置縱向權重為 2

this.addComponent("btn8", layout, c);

c.gridwidth = GridBagConstraints.REMAINDER;

c.gridheight = 1;

this.addComponent("btn11", layout, c);

this.addComponent("btn10", layout, c);

this.pack();

this.setVisible(true);

}

// 增加組件的方法

private void addComponent(String name, GridBagLayout layout,

GridBagConstraints c) {

Button bt = new Button(name); // 創建一個名為 name 的按鈕

layout.setConstraints(bt, c); // 設置 GridBagConstraints 對象和按鈕的關聯

this.add(bt); // 增加按鈕

}

}

public class Example11 {

public static void main(String[] args) {

new Layout("GridBagLayout");

}

}

編譯運行程序,生成的窗口如圖 11-20 所示。

from shengerguan

圖 11-20 例 11-11 運行結果

例 11-11 中,向 GridBagLayout 布局管理器中添加 10 個按鈕。由于每次添加組件的時候都

需要調用該布局的 setConstraints( )方法,將 GridBagConstraints 對象與按鈕組件相關聯,因此,可

以將這段關聯的代碼抽取到 addComponent( )方法當中,簡化書寫。

在添加 button1~ button4 按鈕和 button8~ button10 按鈕時,都將權重 weightx 和 weighty

的值設置為大于 0,因此在拉伸窗口時,這些按鈕都會隨著窗口增大,而在添加 button5~button7

按鈕時,將權重值設置為 0,這樣它們的高度在拉伸時沒有變化,但長度受上下組件的影響,還是

會隨窗口變大。



上一篇:
java布局管理GridLayout
下一篇:
java布局管理CardLayout
標簽:
網友評論
發布評論

訪客的評論 2023/05/29 00:35

文中描述的是準確的嗎,如何報名!

相關推薦
我也來發表評價關閉
我對該內容的評價:
0
評價500
驗證碼: 看不清 換一張
提交 (匿名發布,無須擔心別人知道您的身份)
學校免費發布信息關閉
我們審核后會盡快展示,如有圖片請發郵件到:edu63@foxmail.com

姓      名:

內      容:

手機號碼:

驗  證  碼:  換一張

確認提交
填寫需求信息關閉
我們會根據您的需求匹配并審核留言

姓      名:

意向城市:

留      言:

手機號碼:

驗  證  碼:  換一張

確認提交
糾錯補充本文信息關閉
非常感謝您幫助糾錯補充本文信息


 換一張

確認提交
美女裸体黄网站18禁免费看