javafx tableview 添加勾选框
时间: 2023-09-11 12:07:19 浏览: 267
要在JavaFX TableView中添加勾选框,可以使用TableView的setCellFactory方法来设置TableCell的样式并添加CheckBox。以下示例代码演示如何在TableView中添加CheckBox列:
首先,创建一个包含CheckBox列的TableView:
```java
TableView<Person> table = new TableView<>();
TableColumn<Person, Boolean> checkBoxCol = new TableColumn<>("选择");
checkBoxCol.setCellValueFactory(new PropertyValueFactory<>("selected"));
table.getColumns().add(checkBoxCol);
```
然后,使用setCellFactory方法为CheckBox列创建TableCell并添加CheckBox:
```java
checkBoxCol.setCellFactory(column -> new TableCell<Person, Boolean>() {
private final CheckBox checkBox = new CheckBox();
{
checkBox.setOnAction(event -> {
Person person = getTableRow().getItem();
person.setSelected(checkBox.isSelected());
});
}
@Override
protected void updateItem(Boolean item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
} else {
setGraphic(checkBox);
checkBox.setSelected(item);
}
}
});
```
在这个例子中,我们创建了一个TableCell,其中包含一个CheckBox。在TableCell的构造函数中,我们为CheckBox添加了一个ActionEvent监听器,当用户单击CheckBox时,我们将CheckBox的状态更新到Person对象的选定属性中。在updateItem方法中,我们使用setGraphic方法将CheckBox添加到TableCell中,并设置它的选中状态。
希望这个例子能够帮助你在JavaFX TableView中添加CheckBox列。
阅读全文