SWT Layout 的注意项

这两天,带领组员开发一个很有复杂度的界面,因为组员对SWT的Layout不是很熟悉,所以在界面先后出现了很多问题。有的时候是出现异常,因为Layout和LayoutData不匹配,有时候是显示不出画面。总是,能产生的问题基本都碰到了。
目前的开发思路是先用SWT Designer画界面,然后再手工重构整理,SWT Designer对于重构后的代码便不能再识别了。所以仅仅依靠可视化工具是不行的,还要对SWT界面编码非常熟悉。所以对于SWT Layout的掌握就至关重要。
在制作自己的Composite时,一定要注意:
1 外面传入的Composite 一定只用一次,就是在super(parent, style);的时候用,以后自己的所有控件的父亲都是此Composite本身。不要在其他任何地方使用parent了。否则的话,很有可能干扰parent中的内容,造成自身和parent里面其他控件显示错误。

2 每个Composite容器一定都要设置Layout,否则可能会显示不出东西。一般来说都是设置GridLayout, 如果Composite本身就放置一个控件,比如说就放置一个Table,那么也可以用FillLayout。对于新手来说,推荐全部使用GridLayout,否则容易出现Layout和LayoutData不匹配的情况,而且如果界面很复杂的话,问题是很难找到的。GridLayout完全可以替代其他Layout,实现各种需求(如果有控件重叠的情况,就不行了,就要使用FormLayout)。
下面是一段源码,推荐按照这种方式构建界面。
public class TestComposite extends Composite ... {

privateTexttext;
/***//**
*Createthecomposite
*
@paramparent
*
@paramstyle
*/

publicTestComposite(Compositeparent,intstyle)...{
super(parent,style);
setLayout(
newGridLayout());
createArea(
this);
}

privatevoidcreateArea(Compositeparent)...{
text
=newText(this,SWT.BORDER);
text.setLayoutData(
newGridData(SWT.FILL,SWT.CENTER,true,false));

finalButtonbutton=newButton(this,SWT.NONE);
button.setText(
"button");
}


@Override
publicvoiddispose()...{
super.dispose();
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值