javafx tableview 每行加入删除按钮
时间: 2024-09-25 09:02:42 浏览: 31
在JavaFX中,TableViewer是一个用于显示数据集合的组件,它通常会展示表格形式的数据。为了给每行添加一个删除按钮,你可以按照以下步骤操作:
1. 首先,你需要创建一个`TableView`实例,并设置其数据模型,如`ObservableList<YourDataType>`。
```java
TableView<YourDataType> tableView = new TableView<>();
YourDataModel dataModel = ...; // 创建并填充数据模型
tableView.setItems(dataModel);
```
2. 然后,在`TableColumn`上添加一个`TableCell`,并在其中放置删除按钮。这通常通过`new Button("删除")`来创建,然后绑定到一个事件处理器,比如`onDeleteClick()`方法。
```java
TableColumn<YourDataType, String> deleteColumn = new TableColumn<>("Delete");
deleteColumn.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getName()));
deleteColumn.setCellFactory(param -> {
final Button button = new Button();
button.setOnAction(event -> {
YourDataType item = param.getValue(); // 获取当前行的数据
dataModel.remove(item); // 从数据模型中移除
});
return new TableCell<YourDataType, String>() {
@Override
public void updateItem(YourDataType item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
setGraphic(button);
} else {
setGraphic(null);
}
}
};
});
tableView.getColumns().add(deleteColumn);
```
3. 最后,记得处理场景关闭或者窗口关闭等场合,确保数据更改后的保存或确认。
阅读全文