科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件SWT Layout 的注意项

SWT Layout 的注意项

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SWT Layout 的注意项

作者:qianbing 来源: CSDN 2008年3月25日

关键字: layout 注意 SWT Web开发 软件

  • 评论
  • 分享微博
  • 分享邮件
 这两天,带领组员开发一个很有复杂度的界面,因为组员对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 {

    
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, truefalse));

        
final Button button = new Button(this, SWT.NONE);
        button.setText(
"button");
    }

    
    @Override
    
public void dispose() {
        
super.dispose();
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章