2011-12-31 11 views
4

Google検索のようなドロップダウンのComboBoxが必要です(つまり、1文字を入力すると、その文字で始まる要素が表示されます)。ドロップダウンリストが表示されたら、テキストボックス値としてwordのいずれかを選択できます。Google SWTではGoogleのような機能が可能ですか?

SWTでこれを行うことはできますか?

comboLabel.addKeyListener(new KeyListener() 
{ 
    @Override 
    public void keyReleased(KeyEvent e) 
    { 
     ArrayList<String> listElements = new ArrayList<String>(); 
     // on pressing down arrow list gets expanded i.e list drops down 
     if(e.keyCode == 16777218) 
     { 
      comboLabel.setListVisible(true); 
     } 
     // if key pressed is only a number of charecter or space. 
     else if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 97 && e.keyCode <= 122) || e.keyCode == 32) 
     { 
      // for removing all previously assigned labels 
      comboLabel.remove(0,comboLabel.getItemCount()-1); 
      listElements = labels.getLabels(comboLabel.getText()); 
     } 

     for (int i=0; i<listElements.size();i++) 
     { 
      comboLabel.add(listElements.get(i),i); 
     } 
    } 
}); 

答えて

2

あなたが言及しているのは、自動候補のComboBoxです。私が知る限り、Java標準のウィジェット・ライブラリでは利用できません。しかし、多くの人が独自の自動提案コンポーネントを構築しています。 Here's a good exampleには、ソースと実行可能な ".jnlp"拡張子があります。

+0

あなたが提供した例はSwingsにありますが、私はSWTで実行できるかどうかはわかりません? – nik7

+0

SWTとSwingの間には、このような小さなアプリケーションを移植することは可能ですが、十分な類似点があると思います。興味がある場合は、http://carfield.com.hk/document/を参照してください。 java/tutorial/swing2swt.pdfおよびhttp://stackoverflow.com/questions/4650966/converting-an-awt-application-to-swt-jface – Abbas

2

私はSWTのようなものはないと思います。 SWTのウィジェットは、すべてのプラットフォーム(通常)のネイティブウィジェットに対応している必要があります。そのような実装は難しいでしょう。新規または実験的なSWTウィジェットを探す場所はNebulaプロジェクトですが、そこには表示されません。

+0

私はこれを次のように一時的に行っています。1)入力されたキーごとに、コンボボックスの文字列を取得して結果を取得しています。 2)以前に割り当てられたコンボのリスト項目をすべて削除します。3)新しい検索結果をコンボに追加します。 4)SetListVisibleプロパティを 'true'に設定します。 4)の後、リストが下がり、コンボのテキストフィールドからフォーカスが失われます。だから、このアプローチの難しさは、コンボのテキストフィールドでフォーカスを得るためにユーザがリクルートしなければならない各キーを入力した後で、非常に悪いインターフェイスです:(これを改善するための提案? – nik7

+0

コードをスニペットとして投稿できますか? –

+0

コードが最初に更新されたコード – nik7

0

は難しくありません。すべての検索文字列があるリストを取得し、正規表現やindexOfやCollections.binarySearchなどを行います。次に、すべてのオプションを含むテキストフィールドのリストを描画します。私はあなたに例を書くことができます。検索データはどのような種類ですか?

関連する問題