javafx tableview检测任何行上的任何更改,包括添加新行

时间:2014-01-14 12:25:23

标签: javafx listener tableview

因为我真的不知道溶剂。 假设我有一个TableView,其中包含有关产品的信息:描述,数量和价格。还有一个标签,显示表格中所有产品的价格总和(次数)。现在,我希望收到有关对此组件产生影响的任何更改的通知,例如现有行的更改或添加新行。是否有任何听众或类似的实现它?

1 个答案:

答案 0 :(得分:13)

通常通过将ObservableList传递给它来构造TableView。像这样的东西: TableView myTable = new TableView<>(myObservableList);

ObservableList<ClassOfTheObjectsInTheList> myObservableList = FXCollections.FXCollections.observableArrayList(anyNoneObservableCollection);
TableView<ClassOfTheObjectsInTheList> myTable = new TableView<>(myObservableList);

您可以通过执行以下操作将ListChangeListener随意添加到任何ObservableList:

myObservableList.addListener(new ListChangeListener<ClassOfObjectsInTheList>(){

                @Override
                public void onChanged(javafx.collections.ListChangeListener.Change<? extends ClassOfObjectsInTheList> pChange) {
                    while(pChange.next()) {
                        // Do your changes here
                    }
                }
            });