<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)在讓偶們再來看看運(yùn)行后的結(jié)果:

    login4.JPG

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

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

    在一個偶然滴機(jī)會下,偶終于發(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滴值 :-)

    還有一點(diǎn)素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)航:
     
    主站蜘蛛池模板: 插B内射18免费视频| 成人毛片免费观看| 亚洲精品国产福利片| 亚洲av片在线观看| 99爱视频99爱在线观看免费| 亚洲M码 欧洲S码SSS222| 亚洲日韩在线视频| 少妇无码一区二区三区免费| 亚洲日本一区二区一本一道| 色综合久久精品亚洲国产| 国产午夜亚洲精品理论片不卡| 成人午夜免费视频| 午夜亚洲av永久无码精品| 亚洲色偷偷偷综合网| 99久久精品日本一区二区免费 | 亚洲国产精品自产在线播放| 久久精品成人免费观看| 亚洲AV日韩AV永久无码免下载 | 国产亚洲精品美女2020久久| 在线观看视频免费完整版| 亚洲午夜国产精品无卡| 91精品国产免费久久久久久青草 | 成人免费看片又大又黄| 两个人看的www免费视频| 亚洲日韩精品一区二区三区无码| 在线免费视频你懂的| 亚洲精品NV久久久久久久久久| 一本到卡二卡三卡免费高 | 亚洲av午夜福利精品一区人妖| 永久在线观看免费视频| 亚洲Av无码精品色午夜| 国产hs免费高清在线观看| 色欲色欲天天天www亚洲伊| 亚洲精品日韩专区silk| 亚洲线精品一区二区三区影音先锋| 免费看片A级毛片免费看| 亚洲欧美第一成人网站7777 | 亚洲日韩国产精品无码av| 亚洲国产精品久久久天堂| 37pao成人国产永久免费视频| 亚洲人成77777在线播放网站不卡|