> 文档中心 > 室友一把王者就学会了 BorderLayout 布局?

室友一把王者就学会了 BorderLayout 布局?

目录

BorderLayout

牛刀小试01

牛刀小试02


    

      大家好我是Nick,我们又见面了~听说BorderLayout布局一把王者的时间就能学会?这究竟是真是假呢?让我们来一起看看趴~

    

BorderLayout

    

      BorderLayout将容器分为EAST、SOUTH、WEST、NORTH、CENTER五个区域,普通组件可以被放置在这5个区域的任意一个中。BorderLayout布局管理器的布局示意图如图所示。

    

    

水平调整

NORTH、SOUTH和CENTER区域

垂直调整

EAST、WEST和CENTER区域

    

      

使用BorderLayout有如下两个注意点:

  1. 当向使用BorderLayout布局管理器的容器中添加组件时,需要指定要添加到哪个区域中。如果没有指定添加到哪个区域中,则默认添加到中间区域中;
  2. 如果向同一个区域中添加多个组件时,后放入的组件会覆盖先放入的组件;

       

    

牛刀小试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将会带着大家一起学习 

GridLayout

喜欢的话欢迎点赞收藏加关注哦!