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

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

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

    posts - 28, comments - 27, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    首先是一個效果圖:

    login.JPG

    為了不違反保密協議,偶在這里把logo和相關的東西都涂掉了,希望不會讓人覺得難看....

    ok,下面就開始講述偶的coding過程:

    首先捏,Dialog是分為三部分的,Window Title Bar,Content Area和Button Bar

    這里的Window Title Bar素很難改動滴,偶也米改....而接下來的ContentArea和ButtonBar因為素分成兩截滴,所以就要把一張背景圖片拆成兩截,分別設置成ContentArea和ButtonBar的背景圖片鳥~~~
    ????protected?Control?createDialogArea(Composite?parent)?{
    ??????? Composite?composite?=?(Composite)?super.createDialogArea(parent);
    ????????composite.setBackgroundImage(backgroundImage);
    ??????? .......
    ??? }

    ??? protected?Control?createButtonBar(Composite?parent)?{
    ??????? Control?composite?
    =?super.createButtonBar(parent);
    ????????composite.setBackgroundImage(backgroundBtmImage);
    ??????? .......
    ???????
    return?composite;
    ????}

    當然,僅僅做到這些還是遠遠不夠滴,不信,你看~~~

    login2.JPG

    看到效果了咩....接下來偶們要做滴就是解決掉背景的問題,因為這個對話框里面沒有Table、Tree之類的控件,于是在createDialogArea()方法中加入一行:

    composite.setBackgroundMode(SWT.INHERIT_DEFAULT);

    我們再來看看改變后的效果:

    login3.JPG

    如上圖所示,介個ContentArea的背景問題已經解決鳥,下面就素重中之重滴ButtonArea鳥~~~讓我們打開Dialog的源代碼,看一下createButtonBar()的部分,就可以發現里面有兩行:

    ????????GridData?data?=?new?GridData(GridData.HORIZONTAL_ALIGN_END
    ????????????????
    |?GridData.VERTICAL_ALIGN_CENTER);
    ????????composite.setLayoutData(data);

    介樣子怎么能行捏,偶們需要讓介個Composite填滿整個DialogArea,這樣子才可以顯示出整個背景圖片,所以偶們就要在重寫后的方法中加入下面一行代碼:

    composite.setLayoutData(new?GridData(SWT.FILL,?SWT.TOP,?false,?false));

    現在讓偶們再來看看運行后的結果:

    login4.JPG

    為什么會素介個樣子捏?即使素把layout改成SWT.RIGHT,也不會改變介個結果...偶快要郁悶滴抓狂鳥.....

    經過漫長滴測試,偶終于發現鳥,如果控件滴layoutData不grabExcessSpace的話,那么現在滴DialogArea的Composite實際大小就素兩個Button加起來滴大小,所以無論如何也素不會居右對齊滴....介可怎么辦捏.....如果去重寫createButton方法滴話,那介個dialog滴代碼可就太丑陋鳥....

    在一個偶然滴機會下,偶終于發現鳥SWT.RIGHT_TO_LEFT !!!偶依稀見到鳥燦爛滴曙光!8過Composite的style素在創建時指定的,似乎米辦法在后面覆蓋,所以偶們只好整個滴把createButtonBar重寫掉鳥~~~

    ????protected?Control?createButtonBar(Composite?parent)?{
    ????????Composite?composite?
    =?new?Composite(parent,?SWT.RIGHT_TO_LEFT
    ????????????????
    |?SWT.NONE);
    ????????
    //?create?a?layout?with?spacing?and?margins?appropriate?for?the?font
    ????????
    //?size.
    ????????GridLayout?layout?=?new?GridLayout();
    ????????layout.makeColumnsEqualWidth?
    =?true;
    ????????layout.marginWidth?
    =?convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    ????????layout.marginHeight?
    =?convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    ????????layout.horizontalSpacing?
    =?convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    ????????layout.verticalSpacing?
    =?convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    ????????layout.marginLeft?
    =?10;
    ????????composite.setLayout(layout);
    ????????GridData?data?
    =?new?GridData(SWT.FILL,?SWT.TOP,?false,?false);
    ????????composite.setLayoutData(data);
    ????????composite.setFont(parent.getFont());

    ????????
    //?Add?the?buttons?to?the?button?bar.
    ????????createButtonsForButtonBar(composite);
    ??????? composite.setBackgroundImage(backgroundBtmImage);
    ????????
    return?composite;
    ????}

    在上面的代碼中,偶除了對偶所提到的地方進行了修改以外,還加上鳥一行: layout.marginLeft?=?10;

    介個素因為如果右邊距過小滴話,背景圖片就會被覆蓋掉一些,而因為偶們用到鳥
    SWT.RIGHT_TO_LEFT,所以應當設置marginLeft滴值 :-)

    還有一點素8能忘記滴,就素要重寫一下setButtonLayoutData(Button button)方法,因為偶們要把Button改成居右對齊:

    ????protected?void?setButtonLayoutData(Button?button)?{
    ????????GridData?data?
    =?new?GridData(SWT.RIGHT,?SWT.CENTER,?false,?false);
    ????????
    int?widthHint?=?convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    ????????Point?minSize?
    =?button.computeSize(SWT.DEFAULT,?SWT.DEFAULT,?true);
    ????????data.widthHint?
    =?Math.max(widthHint,?minSize.x);
    ????????button.setLayoutData(data);
    ????}

    然后再在createButtonsForButtonBar()方法中,把創建按鈕的順序改變一下,偶們就可以看到最開始滴那張美麗滴對話框鳥~~~雖然被偶涂改滴有些不美麗鳥~~~

    現在還有個小小滴問題就素按鈕距離底端滴黑框太近鳥~~介個素因為,介個Composite只有一行,所以要改變按鈕距離底端滴距離,那么DialogArea滴大小就要跟著改變,而現在偶們滴DialogArea所需要滴背景圖片還米改好,于是只有這樣鳥~~~大家應該知道在哪里設置底邊的邊距吧?就素createButtonBar方法中滴那個layout.marginHeight =xxx :)

    最后別忘了,整個對話框的高度,應該是Window Title Bar,Content Area和Button Bar三部分滴和。

    偶已經說完鳥,如果覺得偶滴介篇文章對你有些幫助的朋友,請去支持一下偶們美麗可愛滴靚穎同學滴新專輯The One吧:)多謝!

    評論

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 10:05 by wolfsquare
    這是在寫技術文章,還是小學生作文?

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 11:43 by 小小涼粉
    偶只素想寫滴淺顯易懂一些.....

    wolfsquare對什么地方不滿意?

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 11:45 by 小小涼粉
    偶介個米深度咩?

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 14:53 by nickey
    能不能說中文?

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 20:05 by 慈悲魚
    覺得作者說話怪,是不是我太老了

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-17 21:45 by 小小涼粉
    作技術的人,也要關注一下流行好不好...

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2006-10-18 14:54 by 123bingbing
    增開7群,號碼 30440732
    8群 30756649
    9群 30178567
    10群 28694497

    我們的qq群:15096318 學習程序的都可以來

    # re: [rcp系列]用RCP做出漂亮的對話框[未登錄]  回復  更多評論   

    2008-05-05 09:52 by an
    不知所云~

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2008-05-16 17:44 by WHAPPLEKING
    實在太感謝了,要不我死也弄不出來啊

    # re: [rcp系列]用RCP做出漂亮的對話框[未登錄]  回復  更多評論   

    2008-08-21 16:49 by 路人乙
    不錯 贊

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2008-09-28 23:02 by 桃花島主
    你的文章還是不錯的,但通俗易懂也不是這樣寫呀,請把 捏鳥 之類的去掉啊,我看著頭疼,真的.我都是煞眉頭看的.因為這并不是網絡語言,根本就是你們地方土話啊!

    # re: [rcp系列]用RCP做出漂亮的對話框  回復  更多評論   

    2011-11-25 11:41 by shenfx
    看完我整個人都鳥了~

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎影库久免费视频| 日本亚洲欧美色视频在线播放 | 国产亚洲成av人片在线观看| 噼里啪啦电影在线观看免费高清 | 亚洲AV无码成人精品区大在线| 免费能直接在线观看黄的视频| 国产精品成人啪精品视频免费| 亚洲成av人片天堂网无码】| 亚洲成a人片在线观| 亚洲AV人无码综合在线观看| 亚洲色婷婷六月亚洲婷婷6月| 亚洲av无码乱码在线观看野外| 一个人在线观看视频免费| 99久久免费中文字幕精品| 中文字幕无码免费久久9一区9| 爱情岛亚洲论坛在线观看| 亚洲高清有码中文字| 亚洲国产一区在线观看| 亚洲精品不卡视频| 亚洲国产综合专区电影在线| 亚洲日产韩国一二三四区| 亚洲人成网站在线观看青青| 又粗又大又长又爽免费视频| 夜夜爽免费888视频| 日韩免费毛片视频| 麻豆国产精品入口免费观看| 成人毛片免费在线观看| 毛片a级毛片免费播放下载 | 久久乐国产综合亚洲精品| jlzzjlzz亚洲jzjzjz| 亚洲伦理一二三四| 久久精品国产亚洲αv忘忧草| 亚洲区精品久久一区二区三区| 亚洲日韩中文字幕| 激情综合亚洲色婷婷五月APP| 亚洲一区二区三区四区视频| 日本亚洲免费无线码| 亚洲gay片在线gv网站| 美女免费精品高清毛片在线视| 污网站免费在线观看| h视频在线免费观看|