1

ここに画像の説明を入力してください

Weather Undergroundを使用してJavaで天気予報アプリケーションを作成していたところ、一部の都市のデータが含まれていることがわかりました。

当初はGeopIP、ユーザーの位置を自動的に取得するために使用することを計画していましたが、都市のサポートが限られているため、プログラムが開始するたびにユーザーに都市を選択させることにしました。

WeatherUndergroundでサポートされている都市からユーザーが選択できるようにしたいと思います。ユーザーが名前を入力し、名前を入力すると、写真に示されているのと同様の方法で可能な場所が表示されます。

私の質問は:

  • この検索機能を実装するにはどうすればよいですか?
  • 私の最初の推測はVector、都市のすべての名前を含むものを作成し、ブルートフォースを使用して一致を見つけ、JPopupまたはで表示することJWindow containing a JListでしたが、より良い方法が必要だと思います

    言い換えると:

    私が理解していないのは、使用しなければならないデータ構造にどのような情報を保持するのかということです。サポートする都市のリストを手動で作成するWeather Underground必要がありますか、それとも別の方法がありますか?

    4

    2 に答える 2

    3

    Trieデータ構造 (デジタル ツリーまたはプレフィックス ツリーとも呼ばれます)を見てみましょう。オートコンプリートは、その有用性を示す最も一般的な例の 1 つです。

    次の記事には、非常に親しみやすい説明があります。

    Tries を使用して、独自のオートコンプリート ソリューションを展開します。

    于 2013-02-12T18:08:57.523 に答える
    1

    autosuggestcomboboxをグーグルで検索すると、興味深い結果が得られます。

    これはJavaFXで書かれています - 私はすでにそれを自分で使用して拡張しました。とても便利です。JavaFX で「無料」で得られるもの: 切り取り、コピー & ペースト、さらには元に戻すなど、通常の「機能」の一部を含む、自動生成される右クリックのコンテキスト メニュー! だから、私はその解決策をお勧めします。JavaFX に取り掛かるのはそれほど難しくありません。Swing よりもはるかに簡単に習得できると思います。ただし、この実装にはいくつかの欠点があります。特にレイアウトが左揃えでない場合は、コンボボックスの上の単なるテキスト フィールドであるためです。

    わかりました - しかし、もし Swing に固執したいのであれば - おそらくこれを使うことができます。私はそれを自分で使用したことはありませんが、コードは非常に単純でかなりきれいに見えます.JavaFXの実装よりもきれいです. それで - 多分あなたは試して - そしてそれを拡張しますか? それは単に上に構築されていJComboBoxます。

    于 2013-02-12T18:21:07.300 に答える