javafx tableview 添加按钮
时间: 2023-09-08 14:14:25 浏览: 245
你可以在JavaFX的TableView中添加按钮,具体步骤如下:
1. 创建一个TableColumn对象,并设置其cellFactory属性为一个回调函数,回调函数中创建Button对象并设置其事件处理函数。
```
TableColumn<Person, Void> colBtn = new TableColumn<>("Button Column");
colBtn.setPrefWidth(100);
colBtn.setCellFactory(new Callback<TableColumn<Person, Void>, TableCell<Person, Void>>() {
@Override
public TableCell<Person, Void> call(final TableColumn<Person, Void> param) {
final TableCell<Person, Void> cell = new TableCell<Person, Void>() {
private final Button btn = new Button("Button");
{
btn.setOnAction((ActionEvent event) -> {
// 获取所在行的Person对象
Person person = getTableView().getItems().get(getIndex());
// 执行按钮点击事件处理函数
handleButtonClick(person);
});
}
@Override
public void updateItem(Void item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
} else {
setGraphic(btn);
}
}
};
return cell;
}
});
```
2. 将TableColumn对象添加到TableView中。
```
tableView.getColumns().add(colBtn);
```
其中,Person是自定义的数据模型类,handleButtonClick()是自定义的按钮点击事件处理函数。
这样就可以在TableView中添加一个按钮列,每行都有一个按钮,点击按钮可以执行相应的处理函数。
阅读全文