将Button添加到TableView JavaFX中的列

时间:2016-08-25 07:39:16

标签: java javafx tableview super

所以,我正在尝试使用JavaFX中的Table View向列中添加一个按钮。我已成功为一列创建了一个按钮;使用相同的代码在另一列上添加另一个按钮并且变量变化很小,导致我出现一个错误,我无法修复。错误是它不允许我使用单词super。下面是我遇到错误的代码;

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;
    });
我做错了什么?

1 个答案:

答案 0 :(得分:2)

正如您在TableCell javadoc中所看到的,addItems中没有TableCell方法。您可能想使用the updateItem method

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