J2ME之家

匿名投稿 投稿指南 RSS订阅 J2ME通告:
搜索: 您的位置主页>Eclipse>SWT>

SWT Layout开发时的注意项

2008-7-23 07:28:20 来源:ITPUB 责任编辑:来自ITPUB论坛 【 点击: 我要投稿 [进入论坛]

  【j2me之家技术频道】

  这两天,带领组员开发一个很有复杂度的界面,因为组员对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)。

  下面是一段源码,推荐按照这种方式构建界面。


Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/   public class TestComposite extends Composite ...{   private Text text;   /** *//**   * Create the composite   * @param parent   * @param style   */   public TestComposite(Composite parent, int style) ...{   super(parent, style);   setLayout(new GridLayout());   createArea(this);   }   private void createArea(Composite parent)...{   text = new Text(this, SWT.BORDER);   text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));   final Button button = new Button(this, SWT.NONE);   button.setText("button");   }   @Override   public void dispose() ...{   super.dispose();   }   }


Tag:注意 开发 parent Composite Layout 界面 SWT style GridLayout
责任编辑:来自ITPUB论坛
  • 上一篇:开发SWT应用两点心得  下一篇:没有了
    用户名: (新注册)密码: 匿名:  请文明参与讨论,禁止漫骂攻击。
    评论总数: [ 查看全部 ] 网友评论
    论坛推荐帖子
    关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部