表视图中的删除按钮不会消失

Delete button in TableView does not dissapear

我遇到了一个小问题(这真的没什么大不了的,但它让我很烦),因为我从 table 中删除了一条记录后,我还想要我的 删除按钮消失,现在是这样的:

点击删除按钮之前:

AFTER 单击第一条记录的 DELETE 按钮:

此外,这是我用来处理此事件的函数:

private class ButtonCell extends TableCell<Record, Boolean> {
    final Button cellButton = new Button("Delete");

    ButtonCell(){

        cellButton.setOnAction(new EventHandler<ActionEvent>(){

            @Override
            public void handle(ActionEvent t){

                Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
                alert.setTitle("Confirmation Dialog");
                alert.setHeaderText("Delete the entire row?");

                Optional<ButtonType> result = alert.showAndWait();
                if (result.get() == ButtonType.OK){
                    Animal currentAnimal = (Animal) ButtonCell.this.getTableView().getItems().get(ButtonCell.this.getIndex());
                    data.remove(currentAnimal);
                    cellButton.setVisible(false);
                }
            }
        });

    }
    //Display button if the row is not empty
    @Override
    protected void updateItem(Boolean t, boolean empty) {
        super.updateItem(t, empty);
        if(!empty){
            setGraphic(cellButton);

        }


    }
}

试试这个:

@Override
protected void updateItem(Boolean t, boolean empty) {
    super.updateItem(t, empty);
    if(empty){
        setGraphic(null);
    } else {
        setGraphic(cellButton);
    }
}