質問

Swing で高速な検索結果を表示するには、どのコンポーネントが最適であるかを考え中です。このようなものを作成したいのですが、ユーザーがテキストを入力できるテキストフィールドを作成します。入力中にデータベースのバックエンドの高速検索を改善し、テキストボックスの下にデータを表示したいと考えています。結果を参照し、押すと結果が表に表示されます。そこで私の質問は、表示用のこのロジックをすでに備えているコンポーネントはあるのかということです。それともそうではありませんか、それを実装する最善の方法は何ですか。

この検索は、デスクトップ アプリケーションで可能であれば、Web 上で ajax が提供するものと同じロジック、同じ外観と操作感になります。

役に立ちましたか?

解決

Java Swing 用の AutoComplete コンポーネントのようなものをお探しですか?

スイングX このような成分を持っています。見る ここ JavaDoc の場合。さまざまなことを行うためのユーティリティメソッドがたくさんあります。JList の内容からテキスト ボックスを自動補完します。

他のヒント

まずリスナーを JTextFields Document ユーザーがフィールドに入力する (またはフィールドを変更する) たびに通知されるようにします。

そこから、必要なサーバー側コードを実行できます。その結果はリストボックスの更新に使用できます。

留意すべき点がいくつかあります:

  1. バックエンドに対して検索を実行するコードは別のスレッドに存在する必要があります
  2. リスト ボックスを更新するコードは、リスト ボックスのモデルを更新する必要があります。
  3. 最新の結果 (例:ユーザーが「A」と入力すると、backenf がそれを検索します。一方、ユーザーは「C」と入力し、「AC」のバックエンド検索を開始しました。「AC」検索結果が利用可能な場合、「A」検索の結果がリストボックスに表示されないことを確認する必要があります)。

ぜひご覧になることを強くお勧めします ガラス張りのリスト - これは、世に出ているオープンソース Java ライブラリの中で最も優れたものの 1 つであり、あなたが求めていることの大部分を非常に簡単にします。

Hibernate Search を使用します。

スイングハック (http://oreilly.com/catalog/9780596009076/)本にはこの例があります。

一石二鳥の利益のために:別のインデックス作成スレッドがあります。この意志:

  1. 検索が実行されるたびに、検索の速度が向上します。
  2. インデックス作成が別のスレッドで行われるため、UI の応答性が向上します。

もちろん、 その通り インデックス作成の実行方法は、特定のアプリケーションによって大きく異なります。調査を始めるのに適した場所は次のとおりです。 検索インデックス作成. 。そして、への参照は無視してください ウェブ 3.0 [原文どおり]。

もちろん可能です。それもシンプルです。用語のドロップダウン リストについては、ポップアップ メニューを使用してください。これは簡単です。入力したテキストのバックグラウンド処理も簡単です。楽しむ!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top