<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 寒武紀 閱讀(2400) 評論(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"后面怎么還有以前輸入的字符???

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


    網站導航:
     
    主站蜘蛛池模板: 四虎成人免费网站在线| 99re免费99re在线视频手机版| 青青青国产在线观看免费网站| 亚洲av无码一区二区三区乱子伦| 一级毛片免费播放男男| 国产亚洲一区区二区在线| 又硬又粗又长又爽免费看 | 国内免费高清在线观看| 亚洲国产成人久久| 毛片免费观看视频| 国产精品亚洲精品爽爽| 亚洲人成无码网WWW| 91精品全国免费观看青青| 亚洲AV一宅男色影视| 最近免费中文字幕高清大全| 亚洲美女视频一区二区三区| 日韩亚洲国产高清免费视频| 亚洲中文字幕无码av| 国产精品四虎在线观看免费| 中美日韩在线网免费毛片视频| 国产亚洲av片在线观看18女人| 美女视频黄a视频全免费网站色窝| 亚洲国产精品自在在线观看| 精品国产无限资源免费观看| 亚洲国产精品美女久久久久| 亚洲狠狠爱综合影院婷婷| 久久免费高清视频| 亚洲综合色婷婷在线观看| 亚洲精品无码AV中文字幕电影网站| 99久久免费国产特黄| 亚洲黄网在线观看| 永久久久免费浮力影院| 中文字幕不卡免费高清视频| 亚洲综合激情六月婷婷在线观看 | 真人做A免费观看| 成人婷婷网色偷偷亚洲男人的天堂| 日韩精品成人亚洲专区| 少妇人妻偷人精品免费视频| 亚洲精品无码你懂的| 国产亚洲福利精品一区| 卡1卡2卡3卡4卡5免费视频|