<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    首先是一個效果圖:

    login.JPG

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

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

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

    這里的Window Title Bar素很難改動滴,偶也米改....而接下來的ContentArea和ButtonBar因為素分成兩截滴,所以就要把一張背景圖片拆成兩截,分別設(shè)置成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;
    ????}

    當(dāng)然,僅僅做到這些還是遠(yuǎn)遠(yuǎn)不夠滴,不信,你看~~~

    login2.JPG

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

    composite.setBackgroundMode(SWT.INHERIT_DEFAULT);

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

    login3.JPG

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

    ????????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));

    現(xiàn)在讓偶們再來看看運行后的結(jié)果:

    login4.JPG

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

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

    在一個偶然滴機會下,偶終于發(fā)現(xiàn)鳥SWT.RIGHT_TO_LEFT !!!偶依稀見到鳥燦爛滴曙光!8過Composite的style素在創(chuàng)建時指定的,似乎米辦法在后面覆蓋,所以偶們只好整個滴把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;
    ????}

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

    介個素因為如果右邊距過小滴話,背景圖片就會被覆蓋掉一些,而因為偶們用到鳥
    SWT.RIGHT_TO_LEFT,所以應(yīng)當(dāng)設(shè)置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()方法中,把創(chuàng)建按鈕的順序改變一下,偶們就可以看到最開始滴那張美麗滴對話框鳥~~~雖然被偶涂改滴有些不美麗鳥~~~

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

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

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

    評論

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

    2006-10-17 10:05 by wolfsquare
    這是在寫技術(shù)文章,還是小學(xué)生作文?

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

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

    wolfsquare對什么地方不滿意?

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

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

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

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

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

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

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

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

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

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

    我們的qq群:15096318 學(xué)習(xí)程序的都可以來

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

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

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

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

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

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

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

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

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费午夜爽爽爽WWW视频十八禁| 亚洲情XO亚洲色XO无码| 日韩在线观看免费| 亚洲av无码潮喷在线观看 | 国产成人免费AV在线播放| 亚洲AV日韩AV天堂一区二区三区| 免费成人福利视频| 深夜A级毛片视频免费| 亚洲AV永久无码精品一百度影院| 麻花传媒剧在线mv免费观看| 极品色天使在线婷婷天堂亚洲| 国产亚洲精品a在线观看app| 一二三四影视在线看片免费 | 久久永久免费人妻精品下载| 亚洲国产精品无码久久98| 亚洲av无码国产精品色午夜字幕| 成年免费大片黄在线观看岛国| caoporm超免费公开视频| 亚洲午夜电影在线观看高清| 亚洲综合精品网站在线观看| 久久久久久免费视频| 中文字幕永久免费| 亚洲AV无码成人精品区狼人影院 | 亚洲乱码中文字幕综合234| 91成人免费在线视频| 中文字幕不卡免费视频| 亚洲爆乳AAA无码专区| 亚洲天天做日日做天天看| 免费a在线观看播放| aa级一级天堂片免费观看| a在线观看免费网址大全| 色天使亚洲综合一区二区| 91午夜精品亚洲一区二区三区| 亚洲中文久久精品无码| 日日操夜夜操免费视频| 无码中文在线二区免费| 久久久高清日本道免费观看| 四虎影视永久在线精品免费| 亚洲精品伦理熟女国产一区二区| 亚洲精品无码久久毛片波多野吉衣 | 一级特黄录像免费播放中文版|