java - 将 PropertyChangeListener 添加到多个 JComboBox

标签 java jcombobox propertychangelistener

我有一个带有 JComboBoxes 的表,并且想要向每个 JComboBox 添加一个 PropertyChangeListener,因为某些 ComboBox 的选择必须更改其他 JComboBoxes 的可选项。

我无法手动添加所有这些监听器,因为它们的数量非常多。

我正在使用数组初始化 ComboBox,因此我在创建 JComboBox 时已经尝试添加监听器,如下所示:

comboBox[i].addPropertyChangeListener(new PropertyChangeListener()

但它不起作用,因为字段变量 i 不是最终的,我需要这个变量。

如何将此变量存储在组合框中,或者是否有其他可能性来解决此问题?

最佳答案

如果您可以创建所有这些组合框,那么您还可以手动添加“所有这些监听器”。有几种选择:

  • 每次创建新的组合框时都会创建一个新的监听器,并将该索引 i 传递给该监听器(通过匿名类、内部类或完全成熟的类)或通过创建最终的按照弗朗西斯·厄普顿在回答中建议的方式复制
  • 如果您只需要 i 来检索事件源自的组合框,您还可以调用 event#getSource (这在 ActionEvent 以及 PropertyChangeEvent 上,因为您的问题不清楚监听器的类型)。在这种情况下,您可以仅创建监听器一次,也可以为每个组合框创建一个监听器

关于java - 将 PropertyChangeListener 添加到多个 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705963/

相关文章:

java - Spring MVC Controller 中的 JSON 参数

java - 如何与另一件 JComboBox 元素交换?

java - 为什么我不能向我的 JComboBox 添加多个数组?

java - 不知道如何修复 JFormattedTextField 上的 PropertyChangeListener

java - 通知对象有关事件

java - 我可以使用缓冲的 JGoodies 格式的文本字段接收属性更改事件吗?

java - Spring JPA 数据 : Custom Generic Repositories and Services: UnsatisfiedDependencyException

java - Java正则表达式不匹配

java - 无法运行Spring maven项目,如何解决类路径包含多个SLF4J绑定(bind)?

java - 我无法将字符串从 ActionListener 获取到 Java 中的不同类