相关文章推荐
有胆有识的铁链  ·  Java中 ...·  2 天前    · 
骑白马的鼠标垫  ·  FBX骨骼动画 - 掘金·  1 年前    · 
淡定的米饭  ·  Windows ...·  1 年前    · 

java布局管理器---BorderLayout(边界布局管理器)

1 年前 · 来自专栏 java phyton matlab编程

Swing组件不能单独存在,必须放置在于容器中,然而组件在容器中的位置和尺寸是由布局管理器决定的。

Swing工具在AWT的基础上提供8种布局管理器:

BorderLayout(边界布局管理器)、BoxLayout(箱式布局管理器)、CardLayout(卡片布局管理器)

FlowLayout(流式布局管理器)、GridBagLayout(网格包布局管理器)、GridLayout(网格布局管理器)

GroupLayout(分组布局管理器)、SpingLayout(弹性布局管理器)。

1.BorderLayout(边界布局管理器)

BorderLayout(边界布局管理器)是一种比较复杂的布局方式,它将容器划分为5个区域,分别为 页头(PAGE_START)、页尾(PAGE_END)、行首(LINE_START)、行尾(LINE_END)、中部(CENTER).

组件可以被放置在这5个区域中的任意一个位置。

使用BorderLayout(边界布局管理器)时,需要使用 add(Component,Object constraints) 方法,其中参数 comp 表示要添加的组件, constraint 指定将组件添加到布局中的位置,是一个 Object类型 ,在传参数时,可以使用 BorderLayout

类提供的5个常量设置组件位置,分别为上面所提到的5个区域

下面结合一个案例演示BorderLayout(边界布局管理器)对组件布局的效果:

import java.awt.*;

import javax.swing.*;

public class BorderLayoutTemp {

private static void createGUI() {

//创建一个名为BorderLayout的顶级容器窗口

JFrame jframe=new JFrame("BorderLayout");

//设置窗体中的布局管理器为BorderLayout

jframe.setLayout(new BorderLayout());

jframe.setSize(300, 300); //设置窗口大小

jframe.setLocation(300, 200); //设置窗体显示的位置

//下面创建5个按钮组件

JButton but1=new JButton("PAGE_START");

JButton but2=new JButton("PAGE_END");

JButton but3=new JButton("LINE_START");

JButton but4=new JButton("LINE_END");

JButton but5=new JButton("CENTER");

//将创建好的按钮组件添加到窗体中,设置按钮所在的区域

jframe.add(but1,BorderLayout.PAGE_START);

jframe.add(but2,BorderLayout.PAGE_END);

jframe.add(but3,BorderLayout.LINE_START);

jframe.add(but4,BorderLayout.LINE_END);

jframe.add(but5, BorderLayout.CENTER );

jframe.setVisible(true); //设置窗体可见

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

//使用SwingUtilities工具类调用createGUI方法并显示GUI

SwingUtilities.invokeLater(BorderLayoutTemp::createGUI);

}

}

运行效果:

BorderLayout 的好处在于可以限定各个区域的边界,当用户改变容器窗口大小时,各组件的相对位置不会发生改变。需要注意的是,在向BorderLayout添加组件时,如果不指定添加到那个区域,则默认添加到 CENTER区域 ,同时在每一个区域只能放一个组件,当添加多的组件时,后面放的组件会覆盖前面的组件。

欢迎关注知乎,留言咨询!

编辑于 2022-03-10 09:51

文章被以下专栏收录

    java phyton matlab编程

    java phyton matlab编程

    一起从小白之路成长