【发布时间】:2016-11-24 15:24:36
【问题描述】:
首先我创建了表。并增加了价值。然后将侦听器添加到 textfield2 以进行搜索(过滤)。我有一个 getStatistics 函数,用于获取一列中值的总和。但是过滤数据后它不起作用。过滤后如何获得值的总和?
ObservableList<CurrentreservsController.userdata> data;
data = FXCollections.observableArrayList();
.......
.......
FilteredList<userdata> filt = new FilteredList<>(data, p ->true);
textfield2.textProperty().addListener((observable, oldValue, newValue) -> {
filt.setPredicate(userdata -> {
if (newValue == null || newValue.isEmpty()) {
return true;
}
String lowerCaseFilter = newValue.toLowerCase();
if (userdata.otag.toString().toLowerCase().contains(lowerCaseFilter)) {
return true; // Filter matches first name.
} else if (userdata.cm.toString().toLowerCase().contains(lowerCaseFilter)) {
return true; // Filter matches last name.
}
return false; // Does not match.
});
});
SortedList<userdata> sortedData = new SortedList<>(filt);
sortedData.comparatorProperty().bind(tablesettings.comparatorProperty());
tablesettings.setItems(sortedData);
seartol=0;
getStatistics();
获取统计函数
private void getStatistics() {
seartol=0;
for (userdata product : data) {
seartol = seartol + Integer.parseInt(product.tol.getValue().toString());
}
label1.setText("Total sum: "+seartol);
}
【问题讨论】: