BorderLayout 边界布局管理器把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。
Borderlayout有以下特征:
- 使用Borderlayout添加组件时,如果没有指定组件的方位,则默认添加到中间位置。
- 使用BorderLayout时,若东、南、西、北方向没有放置对应的组件,那么中间位置的组件就会占据其空缺的位置。
- 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);
}
}
示例代码运行结果如下: