所以,我正在尝试使用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;
});
我做错了什么?
答案 0 :(得分:2)
正如您在TableCell
javadoc中所看到的,addItems
中没有TableCell
方法。您可能想使用the updateItem
method:
@Override
protected void updateItem(UserDetails userDetails, boolean empty) {
super.updateItem(userDetails, empty);
...