【发布时间】:2016-07-27 10:16:35
【问题描述】:
我正在创建一个包含 3 个组合框的框架,每个组合框都依赖于另一个,第 3 个依赖于第 2 个,第 2 个依赖于第 1 个。 问题是当我更改第一个时,我在第三个得到 NullPointer 异常,因为它是第二个的更改动作。
我的问题是当我更改第一个 jComboBox "jComboBox0" 时,如何防止第三个 jComboBox "jCombobox2" 上的项目更改操作?
这是我的代码:
private void jComboBox0ItemItemStateChanged(ItemEvent event) {
jComboBox1.removeAllItems();
ComboItem cat = (ComboItem) jComboBox0.getSelectedItem();
String requete = "from Subcategory where Fk_Category = " + cat.getValue();
Collection subcategories = Subcategory.getListeSubcategory(requete);
for (Iterator i = subcategories.iterator(); i.hasNext();) {
Subcategory item = new Subcategory();
item = (Subcategory) i.next();
System.out.println(item.getId());
jComboBox1.addItem(new ComboItem(item.getNom(), (int) item.getId()));
}
// System.out.println("tbdlat a lkhra ! : "+listCategory.get(0));
}
private void jComboBox1ItemItemStateChanged(ItemEvent event) {
// nda2
jComboBox2.removeAllItems();
ComboItem cat = (ComboItem) jComboBox1.getSelectedItem();
String requete = "from Area where fk_Subcategory = " + cat.getValue()+" group by Nom_Area";
Collection areas = Area.getListeArea(requete);
for (Iterator i = areas.iterator(); i.hasNext();) {
Area item = new Area();
item = (Area) i.next();
System.out.println(item.getId());
jComboBox2.addItem(new ComboItem(item.getNom(), (int) item.getId()));
}
}
private void jComboBox2ItemItemStateChanged(ItemEvent event) {
// i'll do some code here
}
【问题讨论】:
-
@AndrewThompson 我的问题是当我更改第一个 jComboBox "jComboBox0" 时,如何防止第三个 jComboBox "jCombobox2" 上的项目更改动作?
-
OK.. 很好地将其编辑到问题中。您是否在我的第一条评论的帮助下解决了问题?如果没有,我在第二条评论中提到的 MCVE 进展如何?
标签: java swing nullpointerexception jframe jcombobox