熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

SWT Layout開發時的注意項!

2013-11-23 19:59:18  來源: Java高級技術 
    這兩天帶領組員開發一個很有復雜度的界面因為組員對SWT的Layout不是很熟悉所以在界面先後出現了很多問題有的時候是出現異常因為Layout和LayoutData不匹配有時候是顯示不出畫面總是能產生的問題基本都碰到了

  目前的開發思路是先用SWT Designer畫界面然後再手工重構整理SWT Designer對於重構後的代碼便不能再識別了所以僅僅依靠可視化工具是不行的還要對SWT界面編碼非常熟悉所以對於SWT Layout的掌握就至關重要

  在制作自己的Composite時一定要注意

   外面傳入的Composite 一定只用一次就是在super(parent style);的時候用以後自己的所有控件的父親都是此Composite本身不要在其他任何地方使用parent了否則的話很有可能干擾parent中的內容造成自身和parent裡面其他控件顯示錯誤

   每個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 SWTBORDER);
  textsetLayoutData(new GridData(SWTFILL SWTCENTER true false));

  final Button button = new Button(this SWTNONE);
  buttonsetText(button);
  }

  @Override
  public void dispose() {
  superdispose();
  }
  }

From:http://tw.wingwit.com/Article/program/Java/gj/201311/27777.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.