其他分享
首页 > 其他分享> > 常用布局管理器

常用布局管理器

作者:互联网

零基础学Java


在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小。使用布局管理器比我们直接在容器中控制Swing组件的位置和大小方便得多,可以更加有效地处理整个窗体的布局。Swing提供的常用的布局管理器FlowLayout流布局管理器BorderLayout边界布局管理器 还有 GridLayout网格布局管理器(这些布局管理器位于 ava.awt 包)。

实例

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

public class Demo2 extends JFrame {
    public Demo2(){
        setBounds(100,100,300,200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        Container c = getContentPane();
        /**
         * LEFT :左对齐
         * RIGHT :右对齐
         */
        c.setLayout(new FlowLayout(FlowLayout.RIGHT,20,20));//给容器设置流布局 为右对齐、水平间距20、垂直间距20

        for (int i  = 0 ;i < 10 ;i++){
            c.add(new JButton("按钮" + i));//循环添加按钮组件
        }

        setVisible(true);
    }

    public static void main(String[] args) {
        new Demo2();
    }
}

输出结果:

实例

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

public class Demo3 extends JFrame {
    public Demo3(){
        setBounds(100,100,350,200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        Container c = getContentPane();
        c.setLayout(new BorderLayout());//设置为边界布局

        JButton b1 = new JButton("中"),
                b2 = new JButton("东"),
                b3 = new JButton("西"),
                b4 = new JButton("南"),
                b5 = new JButton("北");

        c.add(b1,BorderLayout.CENTER);//添加按钮到 中部
        c.add(b2,BorderLayout.EAST);//添加按钮到 东部
        c.add(b3,BorderLayout.WEST);//添加按钮到 西部
        c.add(b4,BorderLayout.SOUTH);//添加按钮到 南部
        c.add(b5,BorderLayout.NORTH);//添加按钮到 北部

        c.add(new JButton("覆盖"),BorderLayout.EAST);//新组件覆盖旧组件

        setVisible(true);
    }

    public static void main(String[] args) {
        new Demo3();
    }
}

输出结果:

GridLayout网格布局管理器常用的构造方法

  1. public GridLayout(rows , columns)

  2. public GridLayout(rows , columns , horizGap , vertGap)

    (PS:rows表示columns表示horizGap表示水平间距vertGap表示垂直间距;)

实例

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

public class Demo4 extends JFrame {
    public Demo4(){
        setBounds(100,100,300,300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        Container c = getContentPane();
        c.setLayout(new GridLayout(7,3,5,5));//设置为网格布局(GridLayout)7行,3列,水平间距5像素,垂直间距5像素
        for (int i=0;i<20;i++){
            c.add(new JButton("按钮"+i));
        }

        setVisible(true);
    }

    public static void main(String[] args) {
        new Demo4();
    }
}

输出结果:

标签:常用,BorderLayout,布局,new,组件,管理器,public
来源: https://www.cnblogs.com/Auci/p/16030382.html