【发布时间】:2018-12-07 20:44:14
【问题描述】:
我越来越绝望了……:
我确实有一个带有 40 个 JComboBox 的 FRAME。起初,他们提供所有相同的项目。 如果我在一个特定的 ComboBox 中选择一个项目,它应该在那里被选中,并且不再在所有其他 39 个框中可用。
我尝试使用 ComboBoxModel 很长一段时间,但现在我认为它没有任何意义:在我从模型中删除所选项目的那一刻,它也会从它被选中的 Box 中删除。
那么这样做有意义吗:
- 类 GUI 中有 40 个 MyComboBoxes
- 每个 MyComboBox 都实现一个 ItemListener
- 如果选择了一个项目,则该项目将从其他 39 个列表中删除; 如果取消选择,它将被添加到其他 39 个列表中 (但如果我想那样做,听众不能是一个自己的班级,但 itemEventChanged 方法必须在 GUI 中匿名实现?!)
有更好的方法,不是吗?非常感谢您的帮助!
【问题讨论】:
-
处理一个类似的问题,我让它工作的方式是使用一个动作监听器。当您从第一个组合框中选择某些内容时,它会在 ArrayList 中创建模型的副本,然后将其初始化为新的 DefaultComboBoxModel。一旦为第二个组合框设置了该模型,您只需删除从第一个组合框中选择的项目。我目前必须为每个不理想的盒子硬编码一个事件,但它可以工作。
-
这对你有帮助吗,你还在纠结吗?