Java 从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(); //

从TableView中删除数据后如何刷新它?
(我必须单击行,然后单击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)
完全相同)。