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