我有大量的数据,我在JavaFX中使用TableView显示 . 在JavaFX 8 Sortung Filtering的帮助下,我能够根据输入(TextField)实现过滤器 . 条目只有几个不同的状态,所以我想用Checkboxes进行快速选择 .
例如:用户希望查看状态为"In Progress"或"Completed"的所有行 . 因此,他检查具有特定状态的两个复选框 .
我如何实现特定的Listener,TableView将只显示过滤后的数据?
我的代码到目前为止:
ChangeListener<Boolean> cbStateChangeListener = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) {
if (new_val){
}
}
};
如何进行if语句?
2 回答
使用复选框的当前状态重新应用视图的填充?
您只需将
FilteredList
的predicate
属性绑定到具有所选属性作为依赖项的绑定即可 .也许你将能够优化它,使用更少的对象等,但可能you aren't gonna need that.
顺便说一句:使用
Predicate.or
组合与每个选定的CheckBox
关联的Predicate
可能会有所帮助 .