Java 从TableView中删除数据后如何刷新?
从TableView中删除数据后如何刷新它?Java 从TableView中删除数据后如何刷新?,java,javafx,refresh,tableview,Java,Javafx,Refresh,Tableview,从TableView中删除数据后如何刷新它? (我必须单击行,然后单击delete按钮才能删除) 以下是我从可观察列表中删除数据的地方: @FXML void delAction(ActionEvent event) { fnlData.remove(index); //fnl Data is the Observable List finalTable.getSelectionModel().clearSelection(); //
(我必须单击行,然后单击delete按钮才能删除) 以下是我从可观察列表中删除数据的地方:
@FXML
void delAction(ActionEvent event) {
fnlData.remove(index); //fnl Data is the Observable List
finalTable.getSelectionModel().clearSelection(); //finalTable ist the TableView
}
public final void select() {
finalTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldvalue, Object newValue) {
setIndex(fnlData.indexOf(newValue));
System.out.println("OK");
}
});
}
好的,我修好了
代码如下:
@FXML
void delAction(ActionEvent event) {
fnlData.remove(index);
finalTable.getSelectionModel().clearSelection();
finalTable.getItems().clear();
finalTable.getItems().addAll(fnlData);
}
您没有显示的代码有问题。如果所有设置都正确,这些调用将自动导致表更新。如果
fnlData
不是表中项目的引用(根据这个答案,我假设不是),为什么不直接执行finalTable.getItems().remove(index)代码>而不是所有的代码?哦,好的:)但是“fnlData不是表中项目的引用”是什么意思呢?fnlData==finalTable.getItems()
是false
(检查它)。如果您在某个时候调用了finalTable.setItems(fnlData)
,那么它将是true
,只需调用fnlData.remove(index)
就可以了(当然,它与finalTable.getItems().remove(index)
完全相同)。