【发布时间】:2021-08-10 06:11:28
【问题描述】:
我希望每次修改我的 ListView 的内容时执行一个小脚本,但是没有办法直接向 listView 添加监听器。我觉得应该有一个不那么复杂的解决方案。
编辑:我正在使用 javaFX,并且我有一个包含一些对象的 ListView,问题是我希望在这些对象的适当性发生变化时改变前面的颜色。问题是 ListView 是在静态方法中创建的,其内容通过以下方式直接链接到另一个类的另一个实例的属性:
ListView<Ticket> tiickets = new ListView<>(otherClass.getTicketsInHand());
我尝试通过以下方式为每个元素添加一个监听器
tickets.getItems().forEach(ticket -> {otherClass.isFullyDone(ticket).addListener(...)});
然而,在调试器的帮助下,我意识到我的程序甚至从未进入 forEach 中描述的主体。当调用此方法时,ListView 票证的内容为空,这就是为什么永远不会在稍后添加的元素上调用侦听器的原因。我正在寻找一种方法来让你的程序在添加元素时保持更新,在这种情况下执行 forEach 循环。
【问题讨论】:
-
向我们展示您迄今为止的尝试。
-
添加您的 GUI 框架(Swing、JavaFX、SWT、Vaadin 等)的提及或标记
-
你检查过this answer吗?
标签: java listview listener add