gpt4 book ai didi

java - 相互影响 JComboBox

转载 作者:行者123 更新时间:2023-12-01 15:19:02 24 4
gpt4 key购买 nike

我正在开发一个程序,其中 2 个 JComboBox 必须设置彼此的所选项目。让我们将它们的对象名称命名为wheelsTypeCombo 和carBrandCombo。它们的两个模型都包含从数据库检索的对象列表(第一个列表中类型 1 的对象和第二个列表中类型 2 的对象)以及相应类型的特殊wheelsTypeShowAll 和 carBrandShowAll。当选择最后 2 个项目中的任何一个时,将显示两个 JComboBox 中的所有包含项目,包括它们本身(这 2 个特殊项目)。

JComboBoxes的倒数关系规则如下:

  1. 当我们从wheelsTypeCombo中选择一个项目时,carBrandCombo将被重新加载仅使用这些类型轮胎和 carBrandShowAll 项目的所有汽车品牌
  2. 当从 carBrandCombo 的第一种情况状态中选择 carBrandShowAll 项时然后用数据库中的所有相应项目重新加载 carBrandCombo,此外,wheelsTypeCombo 还具有所选项目wheelsTypeShowAll 。
  3. 当我们从 carBrandCombo 中选择一个项目时,相应的车轮类型项目是在wheelsTypeCombo中选择
  4. 如果已选择对应关系中的项目,则不设置 setSelectedItem任一 JComboBox 都需要执行操作

当我将 JComboBox 添加到界面时,我暂时尝试使用匿名 ItemListener 类,但发现自己正在与可能由内部调用方法调用引起的堆栈和空指针异常溢出作斗争。

我很感激任何级别的任何合理改进。

最佳答案

如果我要这样做,我会创建两个自定义类,carBrand 和wheelType,然后让它们每个实现一个 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();

然后在您的组合框代码中,保存车轮和品牌的列表,然后使用结果更新 Listmodel

getSelected().getBrands()

getSelected().getWheels().

然后,当他们选择您的“全部”选项时,您还可以静态调用 getAllBrands() 或其他方法。

可能有“更简单”的方法,例如为每个方法制作 map ,但我认为这将是最“清晰”的方法。

关于java - 相互影响 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com