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

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

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

    nighty

    折騰的年華
    posts - 37, comments - 143, trackbacks - 0, articles - 0

    為SWT文本控件添加彈出式內容輔助

    Posted on 2007-11-02 17:28 寒武紀 閱讀(2399) 評論(5)  編輯  收藏 所屬分類: SWT/JFace

        通常情況下,用戶應該在簡單字段(例如文本字段或組合框)中提供文本信息。雖然用來填充這些字段的應用程序代碼通常比用來填充復雜窗口小部件(例如表或樹)的代碼簡單得多,但這些“簡單”字段通常會給用戶帶來更多負擔。用戶必須確定哪些字段需要內容、某個字段是否包含有效內容以及應該選擇哪些選項。JFace 的字段輔助支持提供了一些類來幫助指導用戶完成輸入任務。
        org.eclipse.jface.fieldassist包提供了二種方式的輔助。帶修飾字段支持允許您提供圖像修飾,以便向用戶提供有關特定字段狀態的提示。內容建議支持允許您提供內容輔助彈出窗口,以便向用戶提供內容選項。
        下面了解一下關于內容建議部分。
        一般的IDE工具都有內容建議的功能,比如很常見的Java編輯器,輸入“.”之后就會激活一個窗口,從里面可以選擇方法或字段,這個功能可以快速高效地完成代碼,而且可以減少很多輸入錯誤。jface的fieldassist提供了對這個功能的支持。
        我們做一個demo,先看一下這個demo的效果。
         
         當按下Alt + '/'的時候,彈出內容輔助的窗口。從中可以選擇相應的建議,進行快速輸入。
        下面是相應的代碼,非常簡單。
        

    sShell = new Shell();
            sShell.setText(
    "Shell");
            GridLayout gridLayout 
    = new GridLayout(1false);
            sShell.setLayout(gridLayout);
            sShell.setSize(
    new Point(300200));
            
            
    final Text t = new Text(sShell, SWT.BORDER | SWT.MULTI);
            t.setLayoutData(
    new GridData(GridData.FILL_BOTH));
            autoActivationCharacters 
    = new char[] '#''(' };
            
    try {
                keyStroke 
    = KeyStroke.getInstance("Alt+/");
            }
     catch (ParseException e1) {
                e1.printStackTrace();
            }

            ContentProposalAdapter adapter 
    = new ContentProposalAdapter(t,
                    
    new TextContentAdapter(), new SimpleContentProposalProvider(
                            
    new String[] "建議1""建議2""建議3" }), keyStroke,
                    autoActivationCharacters);

        按照幫助文檔的描述如下:為了在用戶從彈出窗口中選擇建議時獲取和設置控件內容,必須向適配器提供 IControlContentAdapter 實例,該實例可以檢索和設置特定類型控件的內容。對于文本字段來說,可以使用 TextContentAdapter 類。但是,也可以靈活地實現 IControlContentAdapter,以便將內容建議適配器與任何其他類型的控件配合使用。
        關鍵是定義ContentProposalAdapter類,它有幾個必須的參數,第一個是需要進行內容輔助的控件,第二個是IControlContentAdapter 實例,jface默認提供了二個實現:ComboContentAdapter, TextContentAdapter。按照上面的建議,如果你需要更加高級的功能,那么得實現IControlContentAdapter第四個是IContentProposalProvider的實例,這是提供內容輔助窗口中的內容提供器的接口,jface只實現了一個SimpleContentProposalProvider,這是最簡單的只提供文本內容的內容提供器。同樣的,你可以繼承IContentProposalProvider來實現更高級的功能。
        keyStroke是定義按下什么鍵時激活該提示。autoActivationCharacters是定義當輸入遇到什么符號時會激活提示的字符數組。
       按照幫助文檔的說明,可以在任意控件上安裝 ContentProposalAdapter 以提供此行為。需要什么樣的高級功能,就必須具體實踐一下以上幾個接口的實現。一般的編輯器都會配合SoucreViewer來提供這些功能。



    剛進場的時候戲就落幕

    Feedback

    # re: 為SWT文本控件添加彈出式內容輔助  回復  更多評論   

    2007-11-02 19:35 by 推薦java開源項目介紹大全《敏捷之源 - agilesource.org》
    值得收藏。。。

    # re: 為SWT文本控件添加彈出式內容輔助  回復  更多評論   

    2007-11-04 12:02 by BeanSoft
    收藏了!

    # re: 為SWT文本控件添加彈出式內容輔助  回復  更多評論   

    2007-11-06 09:59 by lesliee
    非常感謝你的研究。

    # re: 為SWT文本控件添加彈出式內容輔助  回復  更多評論   

    2008-01-14 16:05 by ihmyd
    非常棒!

    # re: 為SWT文本控件添加彈出式內容輔助[未登錄]  回復  更多評論   

    2009-09-27 11:39 by xx
    用鼠標選中"建議1"時,正常;但回車時"建議1"后面怎么還有以前輸入的字符???

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


    網站導航:
     
    主站蜘蛛池模板: 日韩亚洲人成在线综合| 国产v亚洲v天堂a无| 国产高清视频免费在线观看| 在线观看免费污视频| 亚洲伊人久久大香线蕉AV| 成人免费淫片在线费观看| 亚洲18在线天美| 青青草免费在线视频| 亚洲欧洲AV无码专区| 日本人的色道www免费一区| 怡红院亚洲红怡院在线观看| 亚洲Av无码乱码在线观看性色| 一级做α爱过程免费视频| 亚洲中文字幕无码爆乳AV| 在线观看肉片AV网站免费| 亚洲人成网站在线播放影院在线| 美丽姑娘免费观看在线观看中文版| 亚洲欧洲免费视频| 黄瓜视频高清在线看免费下载| 亚洲JLZZJLZZ少妇| 久久国产成人精品国产成人亚洲| 免费看黄的成人APP| 亚洲一区二区三区无码国产| 看全色黄大色大片免费久久| 国产精品免费久久| 亚洲毛片无码专区亚洲乱| 男女交性永久免费视频播放| a一级爱做片免费| 亚洲码一区二区三区| 日本一道本高清免费| 久久九九免费高清视频| 18亚洲男同志videos网站| 免费视频淫片aa毛片| 国产一级a毛一级a看免费视频| 亚洲日本国产精华液| 免费一级毛片免费播放| 最近中文字幕免费完整| 老司机午夜精品视频在线观看免费| 无码久久精品国产亚洲Av影片| 好男人视频社区精品免费| 永久免费av无码网站yy|