复选框更改时Javafx更新tableview

复选框更改时Javafx更新tableview,java,checkbox,javafx,tableview,listener,Java,Checkbox,Javafx,Tableview,Listener,我用JavaFX中的TableView显示了大量数据。在的帮助下,我能够根据输入(TextField)实现过滤器。条目只能有几个不同的状态,因此我想使用复选框进行快速选择。 例如:用户希望看到状态为“正在进行”或“已完成”的所有行。因此,他将这两个复选框与特定状态进行了核对 我必须如何实现特定的侦听器,即TableView将只显示过滤后的数据 到目前为止,我的代码是: ChangeListener<Boolean> cbStateChangeListener = new Change

我用JavaFX中的TableView显示了大量数据。在的帮助下,我能够根据输入(TextField)实现过滤器。条目只能有几个不同的状态,因此我想使用复选框进行快速选择。
例如:用户希望看到状态为“正在进行”或“已完成”的所有行。因此,他将这两个复选框与特定状态进行了核对

我必须如何实现特定的侦听器,即TableView将只显示过滤后的数据

到目前为止,我的代码是:

ChangeListener<Boolean> cbStateChangeListener = new ChangeListener<Boolean>() {  
    @Override
        public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) {
            if (new_val){
               
            }
        }
    };
ChangeListener CBStateChangeStener=新的ChangeListener(){
@凌驾

更改公众假期(ObservableValue使用复选框的当前状态重新应用视图填充?

使用复选框的当前状态重新应用视图填充?

您只需将
过滤器列表的
谓词
属性
绑定到所选属性作为依赖项的绑定即可

也许你可以优化这个,使用更少的对象等等,但是可能


顺便说一句:使用
谓词或
组合与每个选中的
复选框关联的
谓词
可能会有帮助

,您只需将
过滤器列表
谓词
属性绑定到一个绑定,并将所选属性作为依赖项

也许你可以优化这个,使用更少的对象等等,但是可能


顺便说一句:使用
谓词或
组合与每个选中的
复选框关联的
谓词

可能会有帮助。这可能不是一个很好的方法。由于OP已经在使用
筛选器列表
,因此只需在筛选器中更改谓词就更有效。重新填充列表om scratch还会丢失表中的重要状态,如选择。这可能不是一个很好的方法。由于OP已经在使用
FilteredList
,因此只需更改筛选器中的谓词就更有效。从头重新填充列表也会丢失表中的重要状态,如选择。
private Predicate<MyItemType> createPredicate() {
    ...
}
filteredList.predicateProperty().bind(Bindings.createObjectBinding(this::createPredicate, checkBox1.selectedProperty(), checkBox2.selectedProperty(), ...));