BorderLayout边界布局


BorderLayout 边界布局管理器把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。

BorderLayout

Borderlayout有以下特征:

  1. 使用Borderlayout添加组件时,如果没有指定组件的方位,则默认添加到中间位置。
  2. 使用BorderLayout时,若东、南、西、北方向没有放置对应的组件,那么中间位置的组件就会占据其空缺的位置。
  3. JFrame、JDialog容器默认的布局管理器为Borderlayout。

Borderlayout布局的构造方法有:

  • BorderLayout(): 构造一个组件之间没有间距(默认间距为0像素)的新边框布局。
  • BorderLayout(int hgap, int vgap) : 构造一个可指定组件间距的边框布局,hgap为横向间距,vgap为纵向间距。

BorderLayout 类的常用方法如下:

方法名及返回值类型 说明
getHgap() 返回组件之间的水平间距
getVgap() 返回组件之间的垂直间距
removeLayoutComponent(Component comp) 从此边框布局中移除指定组件
setHgap(int hgap) 设置组件之间的水平间距
setVgap(int vgap) 设置组件之间的垂直间距

示例

在JFrame中,以FlowLayout的布局方式添加苹果A、梨、苹果B三个按钮,设置按钮之间的水平间距和垂直间距。具体实现代码如下:

    package com.supermap.desktop.samplecode.layout.borderlayout;
import javax.swing.*;
import java.awt.*;

public class MyBorderLayout extends JFrame {
	private JButton apple1 = new JButton("苹果A");
	private JButton pear = new JButton("梨");
	private JButton apple2 = new JButton("苹果B");

	public MyBorderLayout() {
		JPanel panel = (JPanel) this.getContentPane();
		panel.setLayout(new BorderLayout());
		panel.add(apple1, BorderLayout.WEST);
		panel.add(pear, BorderLayout.CENTER);
		panel.add(apple2, BorderLayout.EAST);
	}
	public static void main(String[] args) {
		MyBorderLayout frame = new MyBorderLayout();
		frame.setSize(400, 300);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}
}

示例代码运行结果如下:

BorderLayoutResult

相关内容

Null布局

FlowLayout

GridBagLayout