Milan
Milan

Reputation: 811

Adding a Button to a column in TableView JavaFX

So, I am trying to add a button to a column using Table View in JavaFX. I have successfully created a single button for one column; using the same code to add another button on another column with a small change of variables is resulting me in one error which I am unable to fix. The error is that it is not allowing me to use the word super. Below is the code in which I am having the error on;

TableColumn<UserDetails, UserDetails> addColumn = column("Add", ReadOnlyObjectWrapper<UserDetails>::new, 50);

    addColumn.setCellFactory(col -> {
        Button addButton = new Button("Add");
        TableCell<UserDetails, UserDetails> addCell = new TableCell<UserDetails, UserDetails>() {
            public void addItems(UserDetails userDetails, boolean empty) {
                super.addItems(userDetails, empty); //This line is the error (super)
                if (empty) {
                    setGraphic(null);
                } else {
                    setGraphic(addButton);
                }
            }

        };

        addButton.setOnAction(event -> add(addCell.getItem(), primaryStage));
        return addCell;
    });

what am I doing wrong?

Upvotes: 0

Views: 1264

Answers (1)

fabian
fabian

Reputation: 82491

As you can see in the TableCell javadoc there is no addItems method in TableCell. You probably wanted to use the updateItem method:

@Override
protected void updateItem(UserDetails userDetails, boolean empty) {
    super.updateItem(userDetails, empty);
    ...

Upvotes: 2

Related Questions