BorderLayout
BorderLayout 将容器分为 EAST 、 SOUTH 、 WEST 、 NORTH 、 CENTER五个区域,普通组件可以被放置在这 5 个区域的任意一个中 。 BorderLayout布局 管理器的布局示意图如图所示 。
当改变使用 BorderLayout 的容器大小时, NORTH 、 SOUTH 和 CENTER区域水平调整,而 EAST 、 WEST 和 CENTER 区域垂直调整。使用BorderLayout 有如下两个注意点:
- 当向使用 BorderLayout 布局管理器的容器中添加组件时 , 需要指定要添加到哪个区域中 。 如果没有指定添加到哪个区域中,则默认添加到中间区域中;
- 如果向同一个区域中添加多个组件时 , 后放入的组件会覆盖先放入的组件;
构造方法 | 方法功能 |
---|---|
BorderLayout() | 使用默认的水平间距、垂直 间距创建 BorderLayout 布局管理器 。 |
BorderLayout(int hgap,int vgap): | 使用指定的水平间距、垂直间距创建 BorderLayout 布局管理器。 |
代码演示1:
import java.awt.*;public class BorderLayoutDemo1 {public static void main(String[] args) {//1.创建Frame对象Frame frame = new Frame("这里测试BorderLayout");//2.指定Frame对象的布局管理器为BorderLayoutframe.setLayout(new BorderLayout(30,5));//3.往Frame指定东南西北中各添加一个按钮组件frame.add(new Button("东侧按钮"), BorderLayout.EAST);frame.add(new Button("西侧按钮"), BorderLayout.WEST);frame.add(new Button("南侧按钮"), BorderLayout.SOUTH);frame.add(new Button("北侧按钮"), BorderLayout.NORTH);frame.add(new Button("中间按钮"), BorderLayout.CENTER);//4.设置Frame为最佳大小frame.pack();//5.设置Frame可见frame.setVisible(true);}
}
如果不往某个区域中放入组件,那么该区域不会空白出来,而是会被其他区域占用
package domee.GUI;import java.awt.*;public class BorderLayoutDemo2 {public static void main(String[] args) {Frame frame = new Frame("BorderLayout布局测试");//给frame设置BorderLayout管理器frame.setLayout(new BorderLayout(30,30));//向frame的指定区域添加组件frame.add(new Button("北侧按钮"),BorderLayout.NORTH);frame.add(new Button("南侧按钮"),BorderLayout.SOUTH);//frame.add(new Button("西侧按钮"),BorderLayout.WEST);//frame.add(new Button("东侧按钮"),BorderLayout.EAST);frame.add(new Button("中间按钮"),BorderLayout.CENTER);frame.add(new TextField("测试文本框"));/*** 向同一个区域内添加多个组件时,只会显示最后一个,其他的多个组件被覆盖* 当四周区域内组件无内容时会被其他区域(中间)内容覆盖*/
// Panel panel = new Panel();
// panel.add(new Button("中间按钮"),BorderLayout.CENTER);
// panel.add(new TextField("测试文本框"));
// frame.add(panel);frame.setBounds(200,200,600,300);//frame.pack();frame.setVisible(true);}
}
向同一个区域内添加多个组件时,只会显示最后一个,其他的多个组件被覆盖当四周区域内组件无内容时会被其他区域(中间)内容覆盖
代码演示2:
import java.awt.*;public class BorderLayoutDemo2 {public static void main(String[] args) {//1.创建Frame对象Frame frame = new Frame("这里测试BorderLayout");//2.指定Frame对象的布局管理器为BorderLayoutframe.setLayout(new BorderLayout(30,5));//3.往Frame指定南,北,放入一个按钮,往中间区域放入一个Panelframe.add(new Button("南侧按钮"), BorderLayout.SOUTH);frame.add(new Button("北侧按钮"), BorderLayout.NORTH);Panel panel = new Panel();panel.add(new TextField("测试文本"));panel.add(new Button("中间按钮"));frame.add(panel, BorderLayout.CENTER);//4.设置Frame为最佳大小frame.pack();//5.设置Frame可见frame.setVisible(true);}
}