问题描述
我有一个小型应用程序,可通过JPA从MySQL DB生成统计图表.为了选择要包括在统计信息中的数据库组件,我安装了2个JComboBoxes.第一个JComboBox填充了Category1的元素,第二个JComboBox填充了Category2的元素,Category2是Category1的子类别.我想做的是仅使用链接到JComboBox1中所选内容的Category2元素填充JComboBox2.
I have a small app that generates statistic charts from a MySQL DB via JPA. To select which DB components to include in the statistic I have installed 2 JComboBoxes. First JComboBox is populated with the elements of Category1, second JComboBox with elements from Category2, which is a subcategory of Category1. What i want to do is populate JComboBox2 only with the elements of Category2 that are linked to the selection in JComboBox1.
示例:Category1是汽车品牌,Category2是车型;我希望JComboBox2仅显示所选品牌的模型,现在它显示每个品牌的每个可用模型.
Example: Category1 is car brands, Category2 is models; I want JComboBox2 to show only the models for the selected brand, right now it shows every available model of every brand.
推荐答案
首先,在Combobox1上添加一个侦听器:
First, add a listener on the 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,您应该先将其清空
In order to fill the ComboBox2, you should empty it first
comboBox2.removeAllItems();
comboBox2.addItem("Value 1");
comboBox2.addItem("Value 2");
这篇关于根据另一个JComboBox的选择更改JComboBox的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!