<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    目的1:打開(kāi)一個(gè)新的對(duì)話框時(shí),如何設(shè)定它和父對(duì)話框的相對(duì)位置?比如在登錄對(duì)話框有一個(gè)“創(chuàng)建新帳號(hào)”的按鈕,用戶點(diǎn)擊以后,就出現(xiàn)新的對(duì)話框用于注冊(cè),請(qǐng)問(wèn)如何能讓新的對(duì)話框和舊對(duì)話框排列的整齊一些?應(yīng)該是能設(shè)定二者的相對(duì)位置吧?

    最開(kāi)始,以為要用Shell.setLocation來(lái)設(shè)置,但是對(duì)于一個(gè)Dialog而言,它的Shell在什么時(shí)候才能初始化呢?

    我 在構(gòu)造函數(shù)里面,configureShell(Shell newShell)方法里面,Control createDialogArea(Composite parent)方法里面都調(diào)用過(guò)了this.getShell方法想得到當(dāng)前的Shell,結(jié)果都拋出空指針異常....

    后來(lái)看書(shū)發(fā)現(xiàn),應(yīng)該重寫(xiě)protected Point getInitialLocation(Point initialSize)方法

    比如,在最開(kāi)始的例子中,在第二個(gè)對(duì)話框中我重寫(xiě)了該方法,代碼如下:

    protected?Point?getInitialLocation(Point?initialSize)?{
    ????????Point?location?
    =?new?Point(this.getParentShell().getLocation().x
    ????????????????
    +?this.getParentShell().getBounds().width,?this
    ????????????????.getParentShell().getLocation().y
    ????????????????
    +?this.getParentShell().getBounds().height
    ????????????????
    -?this.getInitialSize().y);
    ????????
    return?location;
    ????}


    其結(jié)果就是兩個(gè)對(duì)話框底部對(duì)齊的平行排列:)

    目的2: 登陸對(duì)話框要記住上次的位置。

    想了半天,好像只能用IPreferenceStore來(lái)做了,在繼承了AbstractUIPlugin的類(lèi)中放入兩個(gè)常量:

    ????public?static?final?String?LOGINDIALOG_POSITION_X?=?"LOGINDIALOG_POSITION_X";

    ????
    public?static?final?String?LOGINDIALOG_POSITION_Y?=?"LOGINDIALOG_POSITION_Y";

    然后重寫(xiě)兩個(gè)方法:

    ????@Override
    ????
    protected?Point?getInitialLocation(Point?initialSize)?{

    ????????String?xposition?
    =?preferenceStore
    ????????????????.getString(Peer68TPlugin.LOGINDIALOG_POSITION_X);
    ????????String?yposition?
    =?preferenceStore
    ????????????????.getString(Peer68TPlugin.LOGINDIALOG_POSITION_Y);
    ????????
    if?(xposition?==?null?||?yposition?==?null || xposition == ""
    ??? ??? ??? ??? || yposition == ""
    )?{
    ????????????
    return?super.getInitialLocation(initialSize);
    ????????}?
    else?{
    ????????????
    return?new?Point(Integer.parseInt(xposition),?Integer
    ????????????????????.parseInt(yposition));
    ????????}
    ????}

    ????@Override
    ????
    public?boolean?close()?{
    ????????preferenceStore.setValue(Peer68TPlugin.LOGINDIALOG_POSITION_X,?
    this
    ????????????????.getShell().getLocation().x);
    ????????preferenceStore.setValue(Peer68TPlugin.LOGINDIALOG_POSITION_Y,?
    this
    ????????????????.getShell().getLocation().y);
    ????????
    return?super.close();
    ????}

    大功告成!


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV无码成人精品区在线观看| 最新免费jlzzjlzz在线播放| 亚洲中文字幕无码永久在线| 色吊丝性永久免费看码| 又大又黄又粗又爽的免费视频| 色欲色欲天天天www亚洲伊| 免费看的成人yellow视频| 久久亚洲精品成人无码| 亚洲成a人片在线播放| 人妻巨大乳hd免费看| 久久久久亚洲av毛片大| 99久久免费国产精精品| 久久亚洲精品无码AV红樱桃| 91免费在线播放| 亚洲一卡2卡3卡4卡5卡6卡| 国内大片在线免费看| 香蕉国产在线观看免费| 亚洲级αV无码毛片久久精品| 日韩精品免费视频| 亚洲国产亚洲综合在线尤物| 岛国大片免费在线观看| 美女黄频免费网站| 亚洲午夜久久久影院伊人| 久久久精品免费视频| 91亚洲国产成人久久精品| 日本久久久免费高清| 色婷婷综合缴情综免费观看| 亚洲va久久久噜噜噜久久天堂| 18禁无遮挡无码国产免费网站| 亚洲天堂免费在线| 亚洲乱码国产一区网址| 国产精品免费视频一区| 国产精品视频全国免费观看| 久热综合在线亚洲精品| 最新免费jlzzjlzz在线播放| jizz免费观看| tom影院亚洲国产一区二区| 国产亚洲精品免费视频播放| 日本最新免费网站| 亚州**色毛片免费观看| 久久亚洲AV成人无码|