【问题标题】:Javafx tableview get values from filtered listJavafx tableview 从过滤列表中获取值
【发布时间】: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);
    }

【问题讨论】:

    标签: javafx tableview


    【解决方案1】:

    您只需根据过滤后的列表而不是源列表来计算统计信息。

     private void getStatistics() {
         seartol=0; 
         for (userdata product : filt ) {
           seartol = seartol + Integer.parseInt(product.tol.getValue().toString());
         }
           label1.setText("Total sum: "+seartol);
     }
    

    【讨论】:

    • @Gpear:如果某个解决方案适合您,请考虑接受它,而不是仅仅发表评论。这使其他人更容易检测到已找到有效的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2013-06-27
    • 2014-11-12
    • 2020-09-04
    • 2020-10-16
    • 2018-08-06
    • 2019-02-10
    相关资源
    最近更新 更多