1

流布局:
FlowLayout构造方法:
FlowLayout()

      构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位。 

FlowLayout(int align)

      构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位。 

FlowLayout(int align, int hgap, int vgap)

      创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。 

注意:

      align=0:表示每一行组件将按照左对齐排列
      align=1:表示每一行组件将按照居中对齐排列
      align=2:表示每一行组件将按照右对齐排列

代码:

package jframe;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.*;

public class jframe extends JFrame{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public jframe(){
        new JFrame("title");
        Container con = getContentPane();
        setLayout(new FlowLayout(0,10,10));            //按照左对齐排列垂直水平间隔为10
        for (int i=0;i<10;i++){
            add(new JButton("Button"+i));              //添加组件
        }
        this.setVisible(true);                         //设置窗体可见
        this.setSize(300, 300);                        //设置窗体大小
    }
    public static void main(String[] args) {
        jframe a = new jframe();
    }
}    

如果改变窗体的大小其中组件的位置也会跟着改变
clipboard.pngclipboard.png

边界布局:
这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一。

代码演示:

package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.*;

public class jframe extends JFrame{
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    String border [] = {BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.WEST,
            BorderLayout.EAST,BorderLayout.CENTER};
    
    String borderName [] = {"North","South","West","East","Center"};
    
    public jframe(){
        this.setTitle("test");
        Container con = this.getContentPane();
        this.setLayout(new BorderLayout());                        //设置容器为边界布局管理器
        for (int i=0;i<5;i++){
            con.add(border[i],new JButton(borderName[i]));        ///循环添加按钮,并设置按钮布局
        }
        this.setVisible(true);
        this.setBounds(50, 50, 500, 300);
    }
    public static void main(String[] args) {
        new jframe();
    }
}

clipboard.png

网格布局
GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。

构造方法摘要
GridLayout()

      创建具有默认值的网格布局,即每个组件占据一行一列。 

GridLayout(int rows, int cols)

      创建具有指定行数和列数的网格布局。 

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

      创建具有指定行数和列数的网格布局(hgap指定网格之间的水平间距,vgap指定网格之间垂直间距)。 

代码演示:

package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.*;

public class jframe extends JFrame{
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public jframe(){
        this.setTitle("test");
        Container con = this.getContentPane();
        this.setLayout(new GridLayout(7,3,5,5));        //设置7行3列垂直水平间隔为5
        for (int i=0;i<20;i++){
            con.add(new JButton("Button"+i));            //20个按钮
        }
        this.setVisible(true);
        this.setBounds(50, 50, 300, 500);
    }
    public static void main(String[] args) {
        new jframe();
    }
}

clipboard.png


Cheney
95 声望8 粉丝

初学者