[疯狂Java笔记]AWT:BorderLayout方位布局

来源:互联网 发布:淘宝四个钻石 编辑:程序博客网 时间:2024/04/27 13:30

1. BorderLayout——方位布局:

    1) 布局分为东西南北中五个方位,每个方位中只能放一个组件,如果同时放了多个组件,那么后放入的就会覆盖之前放入的,这点非常值得注意!

    2) 如果添加组件时没有指定放在哪个方位则默认放在中;

    3) 当BorderLayout布局的容器改变大小(发生拉伸)时,南北位只会水平伸缩,东西位只会垂直伸缩,而中会同时在水平和垂直方向上伸缩;

    4) Window系(Frame、Dialog)和ScrollPane都是默认方位布局的;

    5) 在对框架使用setLayout设定好方位布局之后,就可以在add组件的时候可以指定具体将组件放入那个方位中,这就Container类中对add的重载:

Component Container.add(Component comp, int index); // index就是在不同布局模式下特定的索引

!!在BorderLayout中就是5个方位,是BorderLayout类中定义的静态常量:NORTH、SOUTH、WEST、EAST、CENTER

!例如:f.add(new Button("test"), BorderLayout.EAST);

!!如果不指定方位,则默认加入到中部

    6) 构造器:

         i. 默认构造器:BorderLayout(); // 使用默认的

         ii. 指定水平和垂直间距(组件之间的):BorderLayout(int hgap, int vgap);

    7) 示例:

public class AwtTest {public static void main(String[] args) {// TODO Auto-generated method stubFrame f = new Frame("BorderLayout Test");f.setLayout(new BorderLayout(30, 5));f.add(new Button("East"), BorderLayout.EAST);f.add(new Button("West"), BorderLayout.WEST);f.add(new Button("Center")); // 默认放在中部f.add(new Button("North"), BorderLayout.NORTH);f.add(new Button("South"), BorderLayout.SOUTH);f.pack();f.setVisible(true);}}

    8) 虽然方位布局只能容纳五个组件,看上去很没用,但是容器是可以嵌套的,一旦嵌套起来就可以形成很复杂的画面了,示例:嵌套一个Panel

public class AwtTest {public static void main(String[] args) {// TODO Auto-generated method stubFrame f = new Frame("BorderLayout Test");f.setLayout(new BorderLayout(30, 5));Panel p = new Panel();p.add(new TextField(20));p.add(new Button("push"));f.add(new Button("East"), BorderLayout.EAST);// no WEST,一旦一个方位没有放组件,那么相邻的方位就会侵占它的空间f.add(p); f.add(new Button("North"), BorderLayout.NORTH);f.add(new Button("South"), BorderLayout.SOUTH);f.pack();f.setVisible(true);}}

0 0
原创粉丝点击