目录
大家好我是Nick,我们又见面了~听说BorderLayout布局一把王者的时间就能学会?这究竟是真是假呢?让我们来一起看看趴~
BorderLayout
BorderLayout将容器分为EAST、SOUTH、WEST、NORTH、CENTER五个区域,普通组件可以被放置在这5个区域的任意一个中。BorderLayout布局管理器的布局示意图如图所示。
水平调整
NORTH、SOUTH和CENTER区域
垂直调整
EAST、WEST和CENTER区域
![]()
使用BorderLayout有如下两个注意点:
- 当向使用BorderLayout布局管理器的容器中添加组件时,需要指定要添加到哪个区域中。如果没有指定添加到哪个区域中,则默认添加到中间区域中;
- 如果向同一个区域中添加多个组件时,后放入的组件会覆盖先放入的组件;
牛刀小试01
代码展示
import java.awt.*; public class BorderLayoutDemo1 { public static void main(String[] args) { Frame frame = new Frame("这里测试BorderLayout"); //给frame设置borderlayout布局管理器 frame.setLayout(new BorderLayout(30,10)); //往frame指定区域添加组件 frame.add(new Button("北侧按钮"),BorderLayout.NORTH); frame.add(new Button("东侧按钮"),BorderLayout.EAST); frame.add(new Button("南侧按钮"),BorderLayout.SOUTH); frame.add(new Button("西侧按钮"),BorderLayout.WEST); frame.add(new Button("中侧按钮"),BorderLayout.CENTER); //设置最佳大小,pack方法 frame.pack(); frame.setVisible(true); } }
牛刀小试02
代码展示
import java.awt.*; public class BorderLayoutDemo2 { public static void main(String[] args) { Frame frame = new Frame("这里测试BorderLayout"); //给frame设置borderlayout布局管理器 frame.setLayout(new BorderLayout(30,10)); Panel p =new Panel(); p.add(new TextField("中间文本框")); p.add(new Button("中间按钮")); //如果不往某个区域中放入组件,那么该区域不会空出来,而是会被其他区域占用 frame.add(p); //往frame指定区域添加组件 frame.add(new Button("北侧按钮"),BorderLayout.NORTH); frame.add(new Button("南侧按钮"),BorderLayout.SOUTH); //frame.add(new Button("中侧按钮"),BorderLayout.CENTER); //在这里文本框是最后一个出现的控件,不但占去了中间按钮,还占满了全部空间 //frame.add(new TextField("中间文本框")); //设置最佳大小,pack方法 frame.pack(); frame.setVisible(true); } }
结论:
上面第二个实验验证了“如果向同一个区域中添加多个组件时,后放入的组件会覆盖先放入的组件”,那么该如何解决呢?添加Panel容器即可~
下一篇文章Nick将会带着大家一起学习
喜欢的话欢迎点赞收藏加关注哦!