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

Jan*_*kis 2 java swing jcombobox

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

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

Réj*_*ôme 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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

comboBox2.removeAllItems();
comboBox2.addItem("Value 1");
comboBox2.addItem("Value 2");
Run Code Online (Sandbox Code Playgroud)