1

次のような HashMap があります。

HashMap<CauseCategory, ArrayList<Cause>> data;

CauseCategory と Cause は、コンストラクターまたはセッター メソッド (必要な場合) によって設定される、1 つの文字列インスタンス フィールドを持つ単なるクラスです。ここで、システムはデータベースから一連の原因カテゴリをフェッチし、各原因カテゴリにはそれに関連付けられた多数の原因があります。

原因カテゴリが「技術的」であるとすると、「梱包の問題」、「処理エラー」、「誤算エラー」など、複数の原因が関連付けられます。

GUI クラスにこの HashMap をフィードします。これには 2 つの JComboBox (原因カテゴリ + 原因説明) があります。

最初のコンボボックス (カテゴリ) をバインドして、そのリストから 1 つの項目を選択したときに、それに関連する原因のみが 2 番目のコンボボックス (原因の説明) に表示されるようにするにはどうすればよいですか?

編集:ハッシュマップを次のように考える方が簡単かもしれません:

HashMap<String, ArrayList<String>> data;
4

1 に答える 1

3

最初のコンボ ボックスに ActionListener を追加します。選択が変更されるたびに、ActionEvent が発生し、ActionListener が呼び出されます。リスナーから、コンボ ボックスから新しく選択されたカテゴリを取得し、マップから関連原因を取得して、2 番目のコンボ ボックスに表示される項目を変更します。

いつものように:スイングのチュートリアルへのリンク

于 2012-12-16T18:13:22.683 に答える