BorderLayout(边界布局)
1、BorderLayout布局特征
边界布局把容器分为五个位置:
上北(NORTH)下南(SOUTH)左西(WEST)右东(EAST)中(CENTER)
特征:
可以把组件放在这五个位置的任意一个,位置默认为CENTER。
南、北位置控件占一行,控件宽度自适应整行。
左中右 共同占一行;
东、西、南、北中某个位置没控件,中间控件自动占据该位置。
(即:只要某个位置没控件,调皮的center就侵占了那个位置)
所以如果只有center有控件,则中间控件将自动布满整个屏幕。
2、边界布局BorderLayout类的常用构造函数和方法
构造方法摘要 |
|
BorderLayout() |
构造一个新边框布局 (默认间距0px) |
BorderLayout(int hgap, int vgap) |
构造一个指定间距的边框布局(hgap,vgap) |
方法摘要 |
|
int getHgap() |
返回组件之间的水平间距。 |
int getVgap() |
返回组件之间的垂直间距。 |
void removeLayoutComponent (Component comp) |
从此边框布局中移除指定组件。 |
void setHgap(int hgap) |
设置组件之间的水平间距。 |
void setVgap(int vgap) |
设置组件之间的垂直间距。 |
3、边界布局实例:
实例://BorderLayoutDemo.Java
package borderlayoutdemo;
import javax.swing.*;
import java.awt.*;
public class BorderLayoutDemo extends JFrame {
public BorderLayoutDemo(){ //构造函数,初始化对象值
setLayout(new BorderLayout(5,5)); //设置为边界布局,组件间横向、纵向间距均为5像素
setFont(new Font("Helvetica",Font.PLAIN, 14)); //设置字体
// getContentPane().add("Center",newJButton("Center")); //把中间的按钮改成下面的形式呈现
JPanel p=new JPanel(); //新建一个面板
p.setLayout(new FlowLayout(1,5,5));//设置这个面板的布局为流式布局
for(int i=1;i<10;i++){ //批量添加按钮
//String.valueOf(i)可将数字转换为字符串
JButton b=newJButton(String.valueOf(i)); //在循环内不断新建按钮,按钮显示为i值转换后的字符串
p.add(b); //将按钮添加到面板中,代码操作过程为,生成一个加入一个,反复操作
}
getContentPane().add("North",new JButton("North")); //将按钮添加到窗口中 -- 上北
getContentPane().add("South",new JButton("South")); //-- 下南
getContentPane().add("West", new JButton("West")); //-- 左西
getContentPane().add("East", new JButton("East")); //-- 右东
getContentPane().add("Center",p); //P面板作为中间部分的组件添加到容器
}
public static void main(String args[]) {
BorderLayoutDemo bl = newBorderLayoutDemo();
bl.setTitle("这是边界布局"); //jf标题
bl.pack(); //自适应大小
bl.setLocationRelativeTo(null); //让窗体居中显示
bl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置默认关闭操作
bl.setVisible(true); //设置可见
}
}