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

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

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

    隨筆 - 119  文章 - 3173  trackbacks - 0
    <2012年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    交友莫獨酒,茅臺西鳳游。
    口干古井貢,心徜洋河流。
    稱多情杜康,趟無量雙溝。
    贊中華巍巍,無此不銷愁。

    常用鏈接

    留言簿(68)

    隨筆分類(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525135
    • 排名 - 93

    最新評論

    ??? 作SWT程序界面時很多窗體的大小是可變。在大小不固定的窗體里怎么使里面的控件在任意大小下都能保持美觀是將讓人頭疼的事情。FormLayout的布局方式就是解決這一問題的靈丹妙藥。上圖是王道,看圖先:
    我胖


    我瘦



    我標準



    以上就是一個窗體在不同大小下的效果,控件隨著窗體的大小改變大小和位置,這就是FormLayout的布局方式的的功勞。
    FormLayout的布局方式的精髓就兩個字“相對”。

    下面先看看設計界面:




    在設計器里面點擊文本框[name_text]可以看到上下左右各出現一個小箭頭,這四個箭頭就是用來設置該控件在四個方向上的相對位置。
    先看看上:
    點擊上箭頭會出現五個小按鈕,
    第一個是設置控件[上邊]相對容器
    [上邊],偏移量為具體數字。
    第二個是
    置控件[上邊]相對容器[底邊],偏移量為具體數字。
    第三個是設置控件[上邊]相對容器[上邊],偏移量為百分比。
    第四個是設置控件[上邊]相對容器內某控件的位置,偏移量為具體數字。
    第五個是取消設置。

    箭頭、箭頭和下箭頭點擊以后與此類似。

    舉例說明:
    對于文本框[name_text],我們這樣設置:
    [上邊]相對容器[上邊],偏移量為具體數字。
    [左邊]相對容器[左邊],偏移量為具體數字。
    [右邊]相對容器[右邊],偏移量為具體數字。(當容器改變寬度的時候,控件寬度跟著改變)
    [下邊]相對容器[上邊],偏移量為具體數字。(當容器高度變化時,高度不變)

    對于
    文本框[name_remark],我們這樣設置:
    [上邊]相對容器[上邊],偏移量為具體數字。
    [左邊]相對容器[左邊],偏移量為具體數字。
    [右邊]相對容器[右邊],偏移量為具體數字。(當容器改變寬度的時候,控件寬度跟著改變)
    [下邊]相對容器[下邊],偏移量為具體數字。(當容器高度變化時,控件高度跟著改變

    通過A相對B這種方式。我們能制作出非常實用美觀的界面。
    以下是代碼:
    import?org.eclipse.swt.SWT;
    import?org.eclipse.swt.layout.FillLayout;
    import?org.eclipse.swt.layout.FormAttachment;
    import?org.eclipse.swt.layout.FormData;
    import?org.eclipse.swt.layout.FormLayout;
    import?org.eclipse.swt.widgets.Composite;
    import?org.eclipse.swt.widgets.Display;
    import?org.eclipse.swt.widgets.Label;
    import?org.eclipse.swt.widgets.Shell;
    import?org.eclipse.swt.widgets.Text;


    public?class?TestFormLayout?{

    ????
    private?Text?text_remark;
    ????
    private?Text?text_name;
    ????
    protected?Shell?shell;

    ????
    /**
    ?????*?Launch?the?application
    ?????*?
    @param?args
    ?????
    */
    ????
    public?static?void?main(String[]?args)?{
    ????????
    try?{
    ????????????TestFormLayout?window?
    =?new?TestFormLayout();
    ????????????window.open();
    ????????}?
    catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????}

    ????
    /**
    ?????*?Open?the?window
    ?????
    */
    ????
    public?void?open()?{
    ????????
    final?Display?display?=?Display.getDefault();
    ????????createContents();
    ????????shell.open();
    ????????shell.layout();
    ????????
    while?(!shell.isDisposed())?{
    ????????????
    if?(!display.readAndDispatch())
    ????????????????display.sleep();
    ????????}
    ????}

    ????
    /**
    ?????*?Create?contents?of?the?window
    ?????
    */
    ????
    protected?void?createContents()?{
    ????????shell?
    =?new?Shell();
    ????????shell.setLayout(
    new?FillLayout());
    ????????shell.setSize(
    500,?375);
    ????????shell.setText(
    "SWT?Application");

    ????????Label?label_remark;

    ????????
    final?Composite?composite?=?new?Composite(shell,?SWT.NONE);
    ????????composite.setLayout(
    new?FormLayout());

    ????????
    final?Label?label_name?=?new?Label(composite,?SWT.NONE);
    ????????
    final?FormData?formData?=?new?FormData();
    ????????formData.top?
    =?new?FormAttachment(0,?25);
    ????????formData.left?
    =?new?FormAttachment(0,?30);
    ????????formData.right?
    =?new?FormAttachment(0,?60);
    ????????label_name.setLayoutData(formData);
    ????????label_name.setText(
    "姓名");

    ????????text_name?
    =?new?Text(composite,?SWT.BORDER);
    ????????formData.bottom?
    =?new?FormAttachment(text_name,?0,?SWT.BOTTOM);
    ????????
    final?FormData?formData_1?=?new?FormData();
    ????????formData_1.top?
    =?new?FormAttachment(0,?25);
    ????????formData_1.right?
    =?new?FormAttachment(100,?-32);
    ????????formData_1.bottom?
    =?new?FormAttachment(0,?43);
    ????????formData_1.left?
    =?new?FormAttachment(label_name,?5,?SWT.DEFAULT);
    ????????text_name.setLayoutData(formData_1);

    ????????text_remark?
    =?new?Text(composite,?SWT.BORDER);
    ????????
    final?FormData?formData_2?=?new?FormData();
    ????????formData_2.bottom?
    =?new?FormAttachment(100,?-16);
    ????????formData_2.right?
    =?new?FormAttachment(100,?-32);
    ????????formData_2.top?
    =?new?FormAttachment(0,?62);
    ????????formData_2.left?
    =?new?FormAttachment(0,?65);
    ????????text_remark.setLayoutData(formData_2);
    ????????label_remark?
    =?new?Label(composite,?SWT.NONE);
    ????????
    final?FormData?formData_3?=?new?FormData();
    ????????formData_3.top?
    =?new?FormAttachment(44,?0);
    ????????formData_3.bottom?
    =?new?FormAttachment(51,?0);
    ????????formData_3.right?
    =?new?FormAttachment(0,?60);
    ????????formData_3.left?
    =?new?FormAttachment(0,?30);
    ????????label_remark.setLayoutData(formData_3);
    ????????label_remark.setText(
    "說明");
    ????????
    posted on 2006-12-25 13:23 交口稱贊 閱讀(5063) 評論(6)  編輯  收藏 所屬分類: Eclipse RCP SWT

    FeedBack:
    # re: 跟我學之用FormLayout打造自適應窗體大小的控件布局 2006-12-26 08:37 Coffee and Tea
    從美觀上講,對于“說明”框的高度應當有個最大值,比如300個象素。  回復  更多評論
      
    # re: 跟我學之用FormLayout打造自適應窗體大小的控件布局 2006-12-26 09:11 交口稱贊
    ......................................
    這個好像只能按比例,最大最小值這種布局方式好像不行。。。。。。。。
      回復  更多評論
      
    # re: 跟我學之用FormLayout打造自適應窗體大小的控件布局 2007-01-31 15:34 caid
    兄弟,這種拖拖拽拽的沒啥意思
    基本不需要介紹  回復  更多評論
      
    # re: 用FormLayout打造自適應窗體大小的控件布局[未登錄] 2009-02-27 08:37 jessica
    如果我沒使用swt在panel中顯示圖像,沒使用托拽,純粹是代碼,那我想實現圖像隨最大化,最小化按鈕而改變大小的話該如何做?  回復  更多評論
      
    # re: 用FormLayout打造自適應窗體大小的控件布局[未登錄] 2009-12-17 10:09 test
    @caid
    你就一傻逼  回復  更多評論
      
    # re: 用FormLayout打造自適應窗體大小的控件布局[未登錄] 2012-07-24 13:28 hero
    @jessica
    FillLayout  回復  更多評論
      
    主站蜘蛛池模板: 91久久青青草原线免费| 全免费a级毛片免费**视频| 亚洲最新黄色网址| 国产精品公开免费视频| 少妇性饥渴无码A区免费 | 好吊妞998视频免费观看在线| 国产亚洲福利精品一区二区| 久久久久久亚洲av成人无码国产| 亚洲免费视频观看| 一级一黄在线观看视频免费| 亚洲综合区图片小说区| 亚洲精品人成无码中文毛片| 麻豆高清免费国产一区| jzzjzz免费观看大片免费| 亚洲一区在线观看视频| 中文亚洲成a人片在线观看| 日本免费网址大全在线观看| 久久国产精品免费一区二区三区 | 精品国产污污免费网站入口| 亚洲乱码一二三四区国产| 亚洲人成电影网站国产精品| 97人伦色伦成人免费视频| 久久国产乱子精品免费女| 国产成人不卡亚洲精品91| 亚洲一区二区久久| 久久精品国产亚洲av成人| 五月婷婷亚洲综合| 最新免费jlzzjlzz在线播放| 97在线视频免费| 日本免费A级毛一片| 日本永久免费a∨在线视频| 亚洲乱码一二三四区国产| 无码久久精品国产亚洲Av影片| gogo全球高清大胆亚洲| 免费高清在线爱做视频| 美女内射毛片在线看免费人动物| 成人自慰女黄网站免费大全| 白白色免费在线视频| 亚洲中文字幕无码中文字| 亚洲女人初试黑人巨高清| 亚洲国产精品一区|