根据另一个JComboBox的选择更改JComboBox的元素

时间:2011-03-17 08:40:01

标签: java swing jcombobox

我有一个小应用程序,通过JPA从MySQL DB生成统计图表。要选择要在统计信息中包含哪些数据库组件,我已安装了2个JComboBox。第一个JComboBox使用Category1的元素填充,第二个JComboBox使用Category2中的元素填充,Category2是Category1的子类别。我想要做的是只使用链接到JComboBox1中的选择的Category2元素填充JComboBox2。

示例:Category1是汽车品牌,Category2是型号;我希望JComboBox2只显示所选品牌的型号,现在它显示每个品牌的每个可用型号。

1 个答案:

答案 0 :(得分:5)

首先,在Combobox1上添加一个监听器:

private void comboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {                                                     

    if (java.awt.event.ItemEvent.DESELECTED == evt.getStateChange()) {

        String valueBeforeDeselection = evt.getItem().toString();
        // Do something if needed

    } else if (java.awt.event.ItemEvent.SELECTED == evt.getStateChange()) {

        String valueAfterSelection = evt.getItem().toString();
        // Set the values of the ComboBox2
    }
}

为了填充ComboBox2,您应该先将其清空

comboBox2.removeAllItems();
comboBox2.addItem("Value 1");
comboBox2.addItem("Value 2");