Java——布局管理器

本文介绍了JavaSwing中的FlowLayout(流式布局)如何控制组件排列,以及BorderLayout(边界布局)和GridLayout(网格布局)的特点和使用方法。通过实例演示了如何在JFrame中应用这些布局管理器。
摘要由CSDN通过智能技术生成

1.FlowLayout 流式布局

组件按加入的先后顺序从左向右排序,一行排满了之后自动转到下一行,每行组件都居中

组件的对齐方式:可以使用带参数align的构造函数FlowLayout(int align)

align的取值为:LEFT、RIGHT、CENTER(通常默认)

以上常数是静态变量,可以直接类名引用

    JFrame w = new JFrame("第一个窗体");
    Container contentPane = w.getContentPane();
    contentPane.setLayout(new FlowLayout());    //默认在center
    contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));    //左对齐

指定组件的对齐方式及之间的水平和垂直间隔:FlowLayout(int align, int hgap, int vgap)

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

public class demo {
    public static void main(String[] args) {
        JFrame w = new JFrame("第一个窗体");
        w.setBounds(100,200,800,800);
        //容器
        Container contentPane = w.getContentPane();
        //流式布局
        contentPane.setLayout(new FlowLayout(FlowLayout.LEFT)); 
        //组件
        JButton bt_1 = new JButton("按钮1");
        contentPane.add(bt_1);

        JButton bt_2 = new JButton("按钮2");
        contentPane.add(bt_2);

        JButton bt_3 = new JButton("按钮3");
        contentPane.add(bt_3);

        w.setVisible(true);
    }
}

效果图:

2.BorderLayout 边界式布局

将容器内的空间简单的分为东、西、南、北、中五个区域,每次加入一个组件时,应指明放在哪个区域中。如果某个区域没有加入组件,该区域被其他组件占用。超过5个组件时,应用其他布局管理器

5个区域分别为:NORTH、SOUTH、WEST、EAST、CENTER

前四个可用PAGE_START、PAGE_END、LINE_STRAT、LINE_END代替

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

public class demo {
    public static void main(String[] args) {
        JFrame w = new JFrame("第一个窗体");
        w.setBounds(100,200,800,800);
        //容器
        Container contentPane = w.getContentPane();
        //边界布局
        contentPane.setLayout(new BorderLayout());

        JButton bt_1 = new JButton("按钮1");
        contentPane.add(bt_1,BorderLayout.NORTH);  //或者用PAGE_START

        JButton bt_2 = new JButton("按钮2");
        contentPane.add(bt_2,BorderLayout.SOUTH);  //PAGE_END

        JButton bt_3 = new JButton("按钮3");
        contentPane.add(bt_3,BorderLayout.WEST);   //LINE_START

        JButton bt_4 = new JButton("按钮4");
        contentPane.add(bt_4,BorderLayout.EAST);    //LINE_END

        w.setVisible(true);
    }
}

效果图:

3.GridLayout 网格式布局

组件放入网格的顺序:先占行再占列

当某个网格中不需要放置组件时,可以用空标签 add(new Label () ) 填入,以保证下一个组件能够正确放入下一个网格中

构造函数:

GridLayout( int row, int cols ) 指定行、列

GridLayout( int row, int cols, int hgap, int vgap ) 指定行、列、列间隔、行间隔

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

public class demo {
    public static void main(String[] args) {
        JFrame w = new JFrame("第一个窗体");
        //w.setTitle("第一个窗体");  设置名称
        w.setBounds(100,200,800,800);
        //容器
        Container contentPane = w.getContentPane();
        //网格布局
        contentPane.setLayout(new GridLayout(3,1));

        //特殊容器
        JPanel p1 = new JPanel();
        p1.setBackground(Color.black);    
        /*或者用RGB表示
        p1.setBackground(new Color(201,39,133));
        */
        contentPane.add(p1);

        JPanel p2 = new JPanel();
        p2.setBackground(Color.BLUE);
        contentPane.add(p2);

        JPanel p3 = new JPanel();
        p3.setBackground(Color.CYAN);
        contentPane.add(p3);

        w.setVisible(true);
    }
}

效果图:

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值