java布局管理有哪些?详细展示

BSO 2020-09-15 08:51:54 java常见问答 3522

上次为大家介绍过在java中swing有哪些组件?分组布局的含义?今天再为大家介绍一些相关知识,也就是java布局管理有哪些,并且通过详细的图片为大家展示。

首先我们需要了解的是,java为我们提供了几个常用的布局管理器类,比如说:FlowLayout、BorderLayout、GridLayout、GridBagLayout等。

接下来分别为大家介绍一下。

一、java.awt FlowLayout(流布局)

它将组件按从左到右然后从上到下的顺序依次排列,一行不能放完就折到下一行继续放置。流式布局可以用左对齐、居中对齐、右对齐的方式排列组件。如下图所示:

布局管理的分类

流式布局不限制它所管理的组件的大小,允许他们有最佳的大小。当容器最缩放时,组件的位置可以改变,但组件的大小不改变。JPanel的默认布局为流式布局管理。

二、java.awt BorderLayout(边界布局)

它将组件按东、南、西、北、中五个区域放置,每个方向最多只能放置一个组件。如下图所示:

布局管理的分类

JFrame窗体,JDialog对话框组件默认布局方法为边界布局(BorderLayout),边界布局的五个部分不是都要添加,中间部分会自动调节大小。

三、java.awt GridLayout(网格布局)

它形似一个无框线的表格,每个单元格中放一个组件。将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。如下图所示:

布局管理的分类

另外,组件的相对位置不随容器的缩放而改变,但大小会改变,所有组件的大小相同。并且可以通过GridLayout(int rows, int cols, int hgap, int vgap)来指定网格的行/列,水平间隙/垂直间隙。最后java.awt GridBagLayout非常灵活,可以指定组件放置的具体位置及占用单元格数目。

四、一个界面只可以有一个JFrame窗体组件,但是可以有多个Jpanel面板组件,而JPanel上也可使用各种布局管理器,这样可以组合使用达到较为复杂的布局效果。

JPanel是JComponent的子类。默认布局为流式布局(FlowLayout),属于容器类组件,可以加入别的组件。

代码如下所示:

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MultiLayout extends JFrame
{
    private static final long serialVersionUID = 1 L;
    // 定义组件
    JPanel jp1, jp2;
    JButton jb1, jb2, jb3, jb4, jb5, jb6;
    public static void main(String[] args)
    {
        new MultiLayout();
    }
    public MultiLayout()
    {
        // 创建组件
        // JPanel布局默认是FlowLayout流布局
        jp1 = new JPanel();
        jp2 = new JPanel();
        jb1 = new JButton("西瓜");
        jb2 = new JButton("苹果");
        jb3 = new JButton("荔枝");
        jb4 = new JButton("葡萄");
        jb5 = new JButton("桔子");
        jb6 = new JButton("香蕉");
        // 设置布局管理器(Jpanel默认流布局)
        jp1.add(jb1);
        jp1.add(jb2);
        jp2.add(jb3);
        jp2.add(jb4);
        jp2.add(jb5);
        // 把Panel加入JFrame
        this.add(jp1, BorderLayout.NORTH);
        this.add(jb6, BorderLayout.CENTER);
        this.add(jp2, BorderLayout.SOUTH);
        // 设置窗体
        // 窗体大小
        this.setSize(300, 250);
        // 屏幕显示初始位置
        this.setLocation(200, 200);
        // 显示
        this.setVisible(true);
        // 退出窗体后将JFrame同时关闭
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

图片如下:

布局管理的分类

以上就是关于java布局管理有哪些的具体内容,并且通过具体的图片为大家展示。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

springcloud组件有哪些?分别应用在那些地方?

springcloud五大组件是什么?使用原理和作用是什么?

java.util.logging,修改日志管理器配置详解