使用排序列表中的数据更新ObservableList?

时间:2014-08-18 12:00:11

标签: javafx

我已按照此1教程创建了一个带过滤的tableview。它工作得很好,但是教程中的代码使用已排序的数据创建一个新的SortedList(sortedData),并将其与comparotorproperty绑定到表视图,该视图最初使用ObservableList作为数据源。

SortedList<Record> sortedData = new SortedList<Record>(filteredData);
// 4. Bind the SortedList comparator to the TableView comparator.
    sortedData.comparatorProperty().bind(tableView.comparatorProperty());

    // 5. Add sorted (and filtered) data to the table.
    tableView.setItems(sortedData);

在我的代码中,我还有一个饼图和条形图。他们还使用ObservableList作为数据源,所以我的问题是;如何将sortedData绑定到ObservableList?

我将数据传递给PieChart(和BarChart)的代码如下:

 for (Record record : dataen) {
        dataList.add(new PieChart.Data(record.getFieldMonth(), record.getFieldValue()));
    }

其中record是具有Getters和Setter的类。

1 个答案:

答案 0 :(得分:1)

所以你想把ObservableList<Record>变成ObservableList<PieChart.Data>,对吗?为此,您可以使用EasyBind

ObservableList<PieChart.Data> chartData = EasyBind.map(sortedData,
        r -> new PieChart.Data(r.getFieldMonth(), r.getFieldValue()));

pieChart.setData(chartData);