我正在开发一个程序,其中2个JComboBox必须相互设置 选定的项目。让我们配音他们的对象名称wheelsTypeCombo和carBrandCombo。 它们的两个模型都包含从数据库中检索的对象列表(第一个列表中类型1的对象和第二个列表中类型2的对象)以及相应类型的特殊wheelsTypeShowAll和carBrandShowAll。当选择最后两个项目中的任何一个时,将显示两个JComboBox中的所有包含项目,包括它们自己(2个特殊项目)。
JComboBoxes互惠关系的规则如下:
我暂时尝试使用匿名的ItemListener类,当我将JComboBox添加到接口时,但发现自己正在打斗堆栈和空指针异常溢出可能是由内部调用方法调用引起的。
我希望在任何级别上都能有任何合理的改进。
答案 0 :(得分:1)
如果我要这样做,我会创建两个自定义类,carBrand和wheelsType,然后让每个类实现一个getUsers调用,返回它们自己的内部相关项列表:
public carBrand
public static Enum allWheels
List<wheelsType> myWheels;
getWheels() {
return myWheels;
}
setWheels();
public wheelsType
public static Enum allBrands
List<carBrands> myBrands;
getBrands();
setBrands();
然后在您的组合框代码中,保存您的车轮和品牌列表,然后使用
的结果更新ListmodelgetSelected().getBrands()
或
getSelected().getWheels().
然后,您还可以对getAllBrands()进行静态调用,或者在选择“全部”选项时进行静态调用。
可能有“更简单”的方法,比如为每个方法制作一张地图,但我认为这将是最“明确”的方式。