Вопрос по swing, java – как управлять комбо-боксом с помощью другого комбо-свинга

4

У меня есть два поля со списком, пункты, первый из которых (женщины и мужчины). Я хочу, чтобы, когда пользователь выбирал женщин в первом поле со списком, список женщин одевался во втором поле со списком, а когда мужчины выбирались, список мужчин платье появится во втором. Можно ли использовать эту функцию с помощью окна JCombo? если да, как я могу это сделать, приведите мне пример, пожалуйста. любая помощь будет оценена.

Ваш Ответ

2   ответа
12

как работать с моделями в Как использовать поля со списком а также Как пользоваться списками учебные пособия. В соответствии с выбором в первом поле со списком - перестроить, отфильтровать или, возможно, заменить модель второго поля со списком. Вы можете использовать / расширить 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);    
        }
    }
});

Альтернативно, после выбора в первом комбо вы можете вручную перестроить элементы во втором, то есть: используяJComboBox методыremoveAllItems() а такжеaddItem().

См. Также это связаноприме. trashgod
1

добавление события слушателя в первый комбинированный список. Таким образом, вы будете знать, когда меняется его выбор, вы можете опросить его и заполнить ваш второй комбинированный список соответствующими данными.

Больше информации наhttp: //docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#listener

Похожие вопросы