Java從入門到精通14-GridLayout網格佈局

網格佈局特色:java

使容器中的各組件呈M行×N列的網格狀分佈。數組

網格每列寬度相同,等於容器的寬度除以網格的列數。佈局

網格每行高度相同,等於容器的高度除以網格的行數。spa

各組件的排列方式爲:從上到下,從左到右。.net

組件放入容器的次序決定了它在容器中的位置。code

容器大小改變時,組件的相對位置不變,大小會改變。blog

設置網格佈局行數和列數時,行數或者列數能夠有一個爲零。若rows爲0,cols爲3,則列數固定爲3,行數不限,每行只能放3個控件或容器。若cols爲0,rows爲3,則行數固定爲3,列數不限,且每行一定有控件,若組件個數不能整除行數,則除去最後一行外的全部行組件個數爲:Math.ceil(組件個數/rows)。ci

Math.ceil(double x):傳回不小於x的最小整數值。好比行數爲3,組件數爲13個,則Math.ceil(13/3)=5,即第一行,第二行組件數各爲5個,剩下的組件放在最後一行。rem

若組件數超過網格設定的個數,則佈局管理器會自動增長網格個數,原則是保持行數不變。 字符串

 

構造方法摘要

GridLayout(): 建立具備默認值的網格佈局,即每一個組件佔據一行一列。

GridLayout(int rows, int cols) :

建立具備指定行數和列數的網格佈局。Rows爲行數,cols爲列數。

GridLayout(int rows, int cols, int hgap, int vgap) :

建立具備指定行數、列數以及組件水平、縱向必定間距的網格佈局。

  

方法摘要

int

getColumns()  :獲取此佈局中的列數。

int

getHgap():獲取組件之間的水平間距。

int

getRows() :獲取此佈局中的行數。

int

getVgap()  :獲取組件之間的垂直間距。

void

removeLayoutComponent(Component comp) :從佈局移除指定組件。

void

setColumns(int cols)  :將此佈局中的列數設置爲指定值。

void

setHgap(int hgap):將組件之間的水平間距設置爲指定值。

void

setRows(int rows):將此佈局中的行數設置爲指定值。

void

setVgap(int vgap) :將組件之間的垂直間距設置爲指定值。

String

toString():返回此網格佈局的值的字符串表示形式。

 實例代碼:

import javax.swing.*;
import java.awt.*;

/**
 * Created by Administrator on 2015/10/14.
 */
public class GridDemo extends JFrame {
    //定義面板,並設置爲網格佈局,4行4列,組件水平、垂直間距均爲3
    JPanel p=new JPanel(new GridLayout(4,4,3,3));
    JTextArea t=new JTextArea();        //定義文本框
    //定義字符串數組,爲按鈕的顯示文本賦值
    //注意字符元素的順序與循環添加按鈕保持一致
    String str[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};

    public GridDemo(String s){
        super(s);  //爲窗體名稱賦值
        setLayout(new BorderLayout());     //定義窗體佈局爲邊界佈局
        JButton btn[];                             //聲明按鈕數組
        btn=new JButton[str.length];     //建立按鈕數組
        //循環定義按鈕,並添加到面板中
        for(int i=0;i<str.length;i++){
            btn[i]=new JButton(str[i]);
            p.add(btn[i]);
        }
        //將文本框放置在窗體NORTH位置
        getContentPane().add(t,BorderLayout.NORTH);
        //將面板放置在窗體CENTER位置
        getContentPane().add(p,BorderLayout.CENTER);
        setVisible(true);
        setSize(250,200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);               //讓窗體居中顯示
    }

    public static void main(String[] args){
        GridDemo gl=new GridDemo("網格佈局計算機!");
    }
}
相關文章
相關標籤/搜索