TableLayout

1.什么是TableLayout

Tablelayout是一种布局管理器。这种管理器把容器划分为行和列,就像是电子表格中的单元格。Tablelayouot把行和列交叉的每一个格子称为基本的单元格(cell)。组件被添加到容器划分好的单元格中。当容器发生改变(伸缩)时,单元格也随之伸缩,装载在单元格里的组件也相应的会进行伸缩。

2.1 TableLayout行列的分配一般来说,创建tablelayout要先设定行和列。我们定义一个double类型的二维数组size[][]。

Java代码:
double size[][] ={
{100, 0.50, 0.20, TableLayout.FILL, 200, TableLayout.FILL},
{TableLayout.FILL}};在上面的代码中,size[0]中存放的是列的宽度,size[1]中存放的是行的高度;数组中的整数表示该单元格的宽度或高度为多少像素,小数表示该单元格的宽度或高度为剩余空间的百分之多少,TableLayout.FILL表示将剩余的空间填满,如果出现多个TableLayout.FILL,则这几个单元格平分剩余的空间。假设这个容器有500像素宽,则在上面的例子中:
第1列宽度为100,
第2列为(500-100-200)*0.5=40,
第3列为(500-100-200)*0.3/2=30,
第5列为200,
第6列同第4列,为(500-100-200-40-30)/2=30。
注意:在表示宽或高的像素时范围应该在 0至1之间,而且0.0可以表示成0%或者0个像素,而1只能表示1个像素,不能表示成100%

2.2 创建一个Tablelayout

创建tablelayout就和其他布局管理器一样,直接new一个TableLayout,然后给pannel设置布局panel.setLayout( new TableLayout(size));

2.3 为容器添加组件

使用add方法,add(组件,“坐标”),
add(Component comp, Object constraints)参数说明:
Comp: the component to be added
Constraints: an object expressing? Layout contraints for this
例如给panel添加button: panel.add(button,“0,0”);
如果这个button横跨多个单元格,计算顺序是从左上到右下,则字符串的前两个放第一格的坐标,后两个行最后一格的坐标,例如,从(0,0)到(3,0),表示为:panel.add(button,”0,0,3,0”);

3.tablelayout 举例详细介绍

3.1 行和列的分配

此container被分为三行五列。size[0]为列比列分配,width=200是指component的宽度,可以是任意值。写成35/width 不直接写成0.15是为了以后的便于修改与直观认识。
参数 p 为TableLayout.PREFERRED:指定行或者列可以根据component自身的大小给予合适的行或列比列,以能全部显示此component。
参数F为TableLayout.FILL:指示行或者列会把container剩下的的空间填满,如上第四列和第五列都为F,则表示第四和第五列会把container剩下的空间填满等分为两份,平均分给第四、第五列。

3.2 添加组件

this.add(new JButton(“0,0”),”0,0”)中constraints为“0,0”两个参数,表示只占0行0列
this.add(new JButton(“3,0,3,1”),”3,0,3,1”)中constraints为“3,0,3,1”四个参数,表示此component在container中的占用cell为从“3,0”跨度到“3,1”。跨度的方向为左上角到右下角围成的矩形
Tablelayout就说到这里,这里只是说明一下TableLayout的基本的用法,要深入了解TableLayout,可以去官网里面下载。由于IDE,不支持TableLayout,所以这里我会提供一个方便的开发小工具(以前的同事做的),专门针对TableLayout的小工具,十分好用。在附件中。这里总结一下TableLayout优缺点:优点:
(1)、虽然Tablelayout它不是JDK自带的,但是它是开源的。Tablelaout作为开源的布局框架,可以对核心的类TableLayout.java进行修改达到自己所需要的功能实现。Tablelayout布局与html中表格基本是一样的,我们可以任意而且轻易地合并单元格,可以完成很复杂的布局。
?(2)、当窗口的大小发生改变时,在tableLayout布局下得组件也会自动改变,按%比来分配每行,每列的大小。
(3)、TableLayout简单明了,不需要过多设置属性值,也能布局到复杂的外观,而不像GridBagLayout那样需要设置很多的属性(gridx、gridy、insets等等)过于复杂。缺点:Tablelaout作为第三方的开源框架,要试用它则必须引入tablelayout的功能jar包,如果只要实现tablelayout简单的功能则只需要引入tablelayout相关的几个类就可以。Tablelayout没有可视化的界面可以设计,不像其它jdk提供的布局在netbeans或者eclipse装入插件后有可视化的编辑界面。

本文来自:读书人网(http://www.reader8.cn/)原文链接:http://www.reader8.cn/jiaocheng/20130407/1844907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值