4

最初のコンボボックスは2つあります(女性と男性)。ユーザーが最初のコンボボックスで女性を選択すると、女性のドレスのリストが2番目のコンボボックスに表示され、男性を選択すると、男性のドレスのリストが表示されます。 JComboボックスを使用してこの機能を実行できますか?はいの場合、どうすればそれを行うことができますか。例を挙げてください。どんな助けでもありがたいです。

4

2 に答える 2

12

コンボボックスの使用方法とリストの使用方法の一覧で、モデルの操作方法を確認してください。最初のコンボボックスでの選択に従って、2番目のコンボボックスのモデルを再構築、フィルタリング、またはおそらく置き換えます。DefaultComboBoxModelを使用/拡張できます-によって使用されるデフォルトモデルJComboBox。たとえば、次のスニペットについて考えてみます。

final JComboBox genderComboBox = null;
final JComboBox itemComboBox = null;

final DefaultComboBoxModel hisModel = new DefaultComboBoxModel(new String[]{"a", "b", "c"});
final DefaultComboBoxModel herModel = new DefaultComboBoxModel(new String[]{"x", "y", "z"});

genderComboBox.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        if ("Men".equals(genderComboBox.getSelectedItem())){
            itemComboBox.setModel(hisModel);    
        } else {
            itemComboBox.setModel(herModel);    
        }
    }
});

または、最初のコンボで選択すると、2番目のコンボのアイテムを手動で再構築できます。つまり、JComboBoxメソッドremoveAllItems()とを使用しますaddItem()

于 2012-04-28T22:26:15.217 に答える
1

最初のコンボボックスにイベントリスナーを追加する必要があります。このようにして、選択がいつ変更されるかを知ることができ、それを調べて、2番目のコンボボックスに適切なデータを入力することができます。

詳細については、http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#listenersを参照してください。

于 2012-04-28T21:52:15.013 に答える