java中bordlayout用法_java GUI编程之布局控制器(Layout)实例分析

本文详细介绍了Java GUI编程中的布局控制器,包括FlowLayout、BorderLayout和GridLayout的使用方法,通过实例展示了如何在窗口中布置按钮。强调了布局控制器会自动分配组件的位置,而pack()方法用于确定组件的最佳大小。同时,文章提到了组件添加的内存和对象指向问题。
摘要由CSDN通过智能技术生成

本文实例讲述了java GUI编程之布局控制器(Layout)。分享给大家供大家参考,具体如下:

布局控制器,是用来系统自动分配各个component在window内部是怎么排布的;默认为FlowLayout,即挨个排序。FlowLayout是Panel的

instance 1:FlowLayout

import java.awt.*;

public class TestLayout {

public static void main(String[] args) {

Frame f = new Frame();

Button b1 = new Button("ok");

Button b2 = new Button("open");

Button b3 = new Button("change");

f.setBackground(Color.BLUE);

f.setBounds(100, 100, 300, 300);

f.setLayout(new FlowLayout());

f.setResizable(true);

f.add(b1);

f.add(b2);

f.add(b3);

f.setVisible(true);

}

}

instance 2:BorderLayout

import java.awt.*;

public class TestBorderLayout {

public static void main(String[] args) {

Frame f = new Frame("Border Layout");

Button bn = new Button("Bn");

Button bs = new Button("Bs");

Button be = new Button("Be");

Button bw = new Button("Bw");

Button bc = new Button("Bc");

// f.add(bw,"West");

// f.add(be,"East");

// f.add(bn,"North");

// f.add(bs,"South");

// f.add(bc,"Center");

// f.setLayout(new BordorLayout());

f.add(bn,BorderLayout.NORTH);

f.add(bs,BorderLayout.SOUTH);

f.add(bw,BorderLayout.WEST);

f.add(be,BorderLayout.EAST);

f.add(bc,BorderLayout.CENTER);

f.setSize(200, 200);

f.setVisible(true);

}

}

BorderLayout把整个界面划分为东西南北中五个区域块;其中BorderLayout.NORTH等是int类型的数据,为一个常量。

instance 3:GridLayout

import java.awt.*;

public class TestGridLayout {

public static void main(String[] args) {

Frame f = new Frame();

Button b1 = new Button("b1");

Button b2 = new Button("b2");

Button b3 = new Button("b3");

Button b4 = new Button("b4");

Button b5 = new Button("b5");

Button b6 = new Button("b6");

f.setLayout(new GridLayout(3,2));

f.add(b1);

f.add(b2);

f.add(b3);

f.add(b4);

f.add(b5);

f.add(b6);

f.pack();

f.setSize(200, 200);

f.setVisible(true);

}

}

注:当调用Layout后,其内部的component的大小和位置由系统(布局管理器自主分配),而无法认为的设计。而pack()方法是用来显示各个组件的。

instance 4:综合实例

import java.awt.*;

public class TestedLayout {

public static void main(String[] args) {

Frame f = new Frame("GUI");

f.setLayout(new GridLayout(2,1));

Panel p1 = new Panel(new BorderLayout());

Panel p2 = new Panel(new BorderLayout());

Panel p11 = new Panel(new GridLayout(2,1));

Panel p22 = new Panel(new GridLayout(2,2));

Button b1 = new Button("button");

Button b2 = new Button("button");

Button b3 = new Button("button");

Button b4 = new Button("button");

Button b5 = new Button("button");

Button b6 = new Button("button");

Button b7 = new Button("button");

Button b8 = new Button("button");

Button b9 = new Button("button");

Button b10 = new Button("button");

p1.add(b1,BorderLayout.WEST);

p1.add(b2,BorderLayout.EAST);

p2.add(b3,BorderLayout.WEST);

p2.add(b4,BorderLayout.EAST);

p11.add(b5);

p11.add(b6);

p22.add(b7);

p22.add(b8);

p22.add(b9);

p22.add(b10);

p1.add(p11,BorderLayout.CENTER);

p2.add(p22,BorderLayout.CENTER);

f.add(p1);

f.add(p2);

f.setBounds(100, 100, 400, 400);

f.setVisible(true);

}

}

注:一个new等于创建了一个button对象,分配了一个内存空间。即使是完全相同的button即同样的大小名称等,其终究还是哪一个,当其被反复添加时,仅仅是相当于给其换了位置。其和变量不同,并不是单纯的复制,而是内存和对象的指向问题。

希望本文所述对大家java程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值