0

以下のように、JAVA Swing に最適な検索テキストフィールドを実行する方法:

ここに画像の説明を入力

4

1 に答える 1

2

プロセスの最後に柔軟で再利用可能なソリューションが必要な場合は、実際にはこれを実現するのは簡単ではありません。

a JTextField(わかりました、それは明らかです)、 aJListおよび aJPopupMenuまたはが必要JWindowです。

を取得して一致のStringを生成し、内に表示できる何らかのフィルタリング メカニズムが必要です。これには、特定の実装を提供する必要があります。ListJListListCellRenderer

DocumentListenerに を添付する必要がありJTextFieldます。ドキュメントが更新/変更された場合は、テキスト フィールドのテキストをフィルタリング エンジンに渡して、可能なすべての一致を検索し、JList.

ポップアップが表示されない場合は、テキスト フィールドの場所によってはリストが画面に収まらない可能性があることを考慮して、ポップアップを表示する必要があります。表示されている場合は、ウィンドウを再パックして、使用可能なオプション (存在する場合) をより適切に調整する必要がある場合があります。

ユーザーがフィールドを離れた場合、最初の一致に基づいてテキストをオートコンプリートするか、フィールドを無効にするか、テキストをそのままにしてポップアップが表示されている場合は閉じるかを決定する必要があります。

ユーザーが値をクリックした場合、Stringアイテムの表現を抽出してテキスト フィールドに適用し、ポップアップを閉じる必要があります。

down arrowポップアップ ウィンドウを開いたり、リストの最初の項目に移動したりできるように、テキスト フィールドにキー バインドを追加する必要があります。これは集中力の低下を引き起こしますので、それに備えておく必要があります。

Escapeユーザーがポップアップを閉じることができるように、ポップアップ/フィールドにキーボードバインディングを提供することも必要になるでしょう。

于 2013-09-12T03:43:32.143 に答える