<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gr8vyguy@Blogjava

    使用Layout組織SWT的控件 - 1

    SWTComposite可以使用Layout來(lái)對(duì)其子控件進(jìn)行布局SWT 提供了5 種布局方式: FillLayout, RowLayout, GridLayout, FormLayoutStackLayout。你也可以定義自己的Layout 。下面將分別介紹這5 Layout 以及怎樣定義一個(gè)新的Layout

    FillLayout

    FillLayoutSWT中最簡(jiǎn)單的Layout 類(lèi)它把控件以相同的大小分布在單行或者單列上FillLayout不會(huì)自動(dòng)換行或者換列。通過(guò)參數(shù)你可以指定頁(yè)邊空白和控件之間距離的大小。

    比如下面的代碼

    FillLayout layout = new FillLayout(SWT.HORIZONTAL);
    layout.marginWidth 
    = 50;
    layout.marginHeight 
    = 100;
    layout.spacing 
    = 20;

            
    將指定如下圖的 Layout

    1.jpg 

    如果使用SWT.VERTICAL控件將被安置在一列上。不指定什么參數(shù),如果只貼加一個(gè)控件將填滿(mǎn)窗口。

    用Composite.setLayout(layout)
    方法可以指定一個(gè)Composite Layout

    FillLayout是按照子控件被貼加的順序?qū)ψ涌丶M(jìn)行布局的,準(zhǔn)確地講是以子控件保存在Composite中順序。而改變一個(gè)子控件的Z 順序 ( moveAbove或者moveBelow) 會(huì)改變子控件的順序。下面的例子演示了這一點(diǎn),當(dāng)你點(diǎn)一下按鈕時(shí),兩個(gè)按鈕會(huì)交換位置。

         public   static   void  main(String[] args) {
            
    final  Display display  =   new  Display();
            
    final  Shell shell  =   new  Shell(display);

            shell.setLayout(
    new  FillLayout());
            Button btn1 
    =   new  Button(shell, SWT.PUSH);
            Button btn2 
    =   new  Button(shell, SWT.PUSH);
            btn1.setText(
    " Button A " );
            btn2.setText(
    " Button B " );

            Listener listener 
    =   new  Listener() {
                
    public   void  handleEvent(Event event) {
                    ((Button) event.widget).moveAbove(
    null );
                    shell.layout();
                }
            };
            btn1.addListener(SWT.Selection, listener);
            btn2.addListener(SWT.Selection, listener);

            shell.open();
            
    while  ( ! shell.isDisposed()) {
                
    if  ( ! display.readAndDispatch())
                    display.sleep();
            }
            display.dispose();
        }

    程序如下圖

        2.jpg

        Namenlos.jpg

    SWT要求一個(gè)Layout 的實(shí)例(Instance)只能指定給一個(gè)Composite應(yīng)該避免將同一個(gè)Layout 實(shí)例指定給多個(gè)Composite FillLayout不需要另外對(duì)每個(gè)子控件指定LayoutData ,而后面講到的另外4 個(gè)布局類(lèi)會(huì)需要LayoutData ,同樣的, LayoutData 的實(shí)例也是不能被多個(gè)子控件所共享的,因?yàn)?/span>Layout有可能會(huì)在LayoutData 中緩沖子控件的位置大小信息,以提高性能。FillLayout是非常簡(jiǎn)單的布局算法,多用來(lái)放置一個(gè)子控件填滿(mǎn)父窗口,而布置多個(gè)控件在一行或者一列用RowLayout比較實(shí)用。下一節(jié)講RowLayout。


    轉(zhuǎn)載請(qǐng)保留http://m.tkk7.com/xilaile/archive/2007/02/17/100096.html


    posted on 2007-02-17 00:50 gr8vyguy 閱讀(4673) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java

    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    公告

  • 轉(zhuǎn)載請(qǐng)注明出處.
  • msn: gr8vyguy at live.com
  • 常用鏈接

    留言簿(9)

    隨筆分類(lèi)(68)

    隨筆檔案(80)

    文章分類(lèi)(1)

    My Open Source Projects

    搜索

    積分與排名

    最新評(píng)論

    主站蜘蛛池模板: 中国国语毛片免费观看视频| 亚洲AV成人一区二区三区观看| 久久99久久成人免费播放| 免费国内精品久久久久影院| 亚洲sm另类一区二区三区| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 最近中文字幕国语免费完整 | 日韩a级毛片免费观看| 自拍日韩亚洲一区在线| 国产精品视频永久免费播放| 亚洲日韩精品无码专区加勒比 | 亚洲免费福利在线视频| 中文字幕精品三区无码亚洲| 成人性生免费视频| 亚洲av成人片在线观看| 免费人成网站在线播放| 亚洲日韩在线观看免费视频| 亚洲乱码中文字幕久久孕妇黑人| a毛片免费在线观看| 亚洲欧洲日韩不卡| 99久久免费精品国产72精品九九| 亚洲国产精品无码久久| 亚洲国产精品日韩| 国产99视频精品免费专区| 亚洲欧洲国产成人精品| 暖暖免费高清日本中文| fc2免费人成在线| 日韩精品亚洲人成在线观看| 成年私人影院免费视频网站| 免费无遮挡无遮羞在线看| 亚洲国产精品无码一线岛国| 免费AA片少妇人AA片直播| 老司机福利在线免费观看| 亚洲AV乱码一区二区三区林ゆな | 一个人看的www在线免费视频| 婷婷亚洲综合五月天小说| 成人免费a级毛片| 国产va免费精品| 亚洲国产人成在线观看| 国产一级一片免费播放i| 久久精品视频免费看|