将按钮添加到 TableView JavaFX 中的列
Adding a Button to a column in TableView JavaFX
因此,我正在尝试使用 Table 在 JavaFX 中查看向列添加按钮。我已经成功地为一列创建了一个按钮;使用相同的代码在另一列上添加另一个按钮并更改少量变量会导致我出现一个我无法修复的错误。错误是它不允许我使用超级这个词。以下是我出错的代码;
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;
});
我做错了什么?
如您在 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);
...
因此,我正在尝试使用 Table 在 JavaFX 中查看向列添加按钮。我已经成功地为一列创建了一个按钮;使用相同的代码在另一列上添加另一个按钮并更改少量变量会导致我出现一个我无法修复的错误。错误是它不允许我使用超级这个词。以下是我出错的代码;
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;
});
我做错了什么?
如您在 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);
...