JAVA學習Swing章節流佈局管理器簡單學習

package com.swing;

import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:流(FlowLayout)佈局管理器是佈局管理器中最基本的佈局管理器,流佈局管理器在整個容器中
 * 的佈局正如其名,像流同樣從左到右擺放組件,直到佔據了這一行的全部空間,而後再向下移動一行。
 * 默認狀況下,組件在每一行上都是居中排列的,可是經過設置也能夠更改組件在每一行上的排列位置
 * 
 * 2:FlowLayout類中具備三種構造方法
 * alignment參數使用流佈局管理器後組件在每一行的具體擺放位置
 * horizGap參數以像素爲單位指定組件之間的水平分割
 * vertGap參數以像素爲單位指定組件之間的垂直分割
 * 
 * @author biexiansheng
 *
 */
public class FlowLayoutPosition extends JFrame{

    public FlowLayoutPosition(){
        setTitle("本窗體使用流佈局管理器");//設置窗體標題
        Container container=getContentPane();//初始化容器
        //設置窗體使用流佈局管理器,使組件右對齊,而且設置組件之間的水平間隔,和垂直間隔
        setLayout(new FlowLayout(1,10,10));//new一個構造方法
        //FlowLayout第一個參數設置爲0每一行組件將按照左對齊排列
        //FlowLayout第一個參數設置爲1每一行組件將按照中間對齊排列
        //FlowLayout第一個參數設置爲2每一行組件將按照右對齊排列
        
        for(int i=0;i<10;i++){//在容器中添加10個按鈕
            container.add(new JButton("button"+i));
            //new一個按鈕構造方法,這種使用技巧勤加練習
        }
        setSize(300,200);//設置窗體的大小
        setVisible(true);//設置窗體可視化
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args) {
        FlowLayoutPosition fl=new FlowLayoutPosition();
        //初始化對象調用構造方法
    }
}

實例運行結果以下java

package com.swing;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:在默認不指定窗體佈局的狀況下,Swing組件的佈局模式是邊界(BorderLayout)
 * 佈局管理器
 * 
 * 2:邊界佈局管理器還能夠將容器劃分爲東西南北中5個區域,能夠將組件加入到這5個區域中
 * 邊界佈局管理器可將標籤放置在窗體中間,而且整個組件佔據了窗體的全部的空間
 * 
 * 3:容器調用Container類的add()方法添加組件時能夠設置此組件在邊界佈局管理器中的區域
 * 區域的控制能夠由BorderLayout類中的成員變量來決定
 * @author biexiansheng
 *
 */
public class BorderLayoutPosition extends JFrame{

    //定義組件擺放位置的數組
    String[] border={BorderLayout.CENTER,BorderLayout.NORTH
            ,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST};
    /*1:將佈局以及組件名稱分別放置在數組中,而後設置容器使用邊界佈局管理器
     * 最後在循環中將按鈕添加到容器中,並設置組件佈局
     *2:add()方法提供了在容器中添加組件的功能,並同時設置組件的擺放位置 
     * */
    //定義按鈕組件上面的文字ESWN  東南西北    上北下南左西右東
    String[] buttonName={"center button","north 北 button",
            "south 南 button","west 西 button","east 東 button",};
    public BorderLayoutPosition(){//定義一個構造方法 
        setTitle("這個窗體使用邊界佈局管理器");//
        Container container=getContentPane();//定義一個容器
        setLayout(new BorderLayout());//設置容器爲邊界佈局管理器
        //setLayout()語法爲設置佈局管理器
        
        //在容器中添加按鈕,並設置按鈕佈局
        for(int i=0;i<border.length;i++){
            container.add(border[i],new JButton(buttonName[i]));
        }
        
        //設置窗體的外部屬性
        setSize(350,200);//設置窗體的大小
        setVisible(true);//設置窗體可見
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BorderLayoutPosition bl=new BorderLayoutPosition();
        //實例化對象的時候就調用了構造方法
    }

}

實例運行結果以下數組

package com.swing;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:網格(GridLayout)佈局管理器將容器劃分爲網格,因此組件能夠按行和列進行排列
 * 在網格佈局管理器中,每個組件的大小都相同,而且網格中空格的個數由網格的行數和列數決定
 * 如一個兩行兩列的網格能產生4個大小相等的網格,
 * 
 * 2:組件從網格的左上角開始,按照從左到右,從上到下的順序加入到網格中,並且每個組件都會填滿
 * 整個網格,改變窗體的大小,組件的大小也會隨之改變
 * 
 * 3:網格佈局管理器主要有2個構造方法
 * rows參數表明網格的行數
 * columns參數表明網格的列數,這2個參數只有一個能夠爲0表明一行或者一列能夠排列任意多個組件
 * 參數horizGap指定網格之間的間距,指定網格之間的水平間距
 * 參數vertGap指定網格之間的垂直間距
 * @author biexiansheng
 *
 */
public class GridLayoutPosition extends JFrame{

    public GridLayoutPosition(){//定義一個構造方法
        Container container=getContentPane();//定義一個容器
        
        //設置窗體使用網格佈局管理器,設置了7行3列的網格
        setLayout(new GridLayout(7,3,5,5));//先開始設置佈局管理器
        for(int i=0;i<20;i++){
            container.add(new JButton("button"+i));
        }
        //設置容器的外部結構
        setTitle("這是一個網格佈局管理器的窗體");
        setSize(300,300);//設置窗體的大小
        setVisible(true);//設置窗體的可見
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        GridLayoutPosition gl=new GridLayoutPosition();
        //初始化對象時調用構造方法
    }

}

實例運行結果以下佈局

相關文章
相關標籤/搜索