在JavaFX中使用FXML启用TableView中的复选框,可以通过以下步骤实现:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.TableViewController">
<TableView fx:id="tableView">
<columns>
<TableColumn text="Name" fx:id="nameColumn"/>
<TableColumn text="Age" fx:id="ageColumn"/>
<TableColumn text="Select" fx:id="selectColumn"/>
</columns>
</TableView>
</AnchorPane>
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.CheckBoxTableCell;
public class TableViewController {
@FXML
private TableView<Person> tableView;
@FXML
private TableColumn<Person, String> nameColumn;
@FXML
private TableColumn<Person, Integer> ageColumn;
@FXML
private TableColumn<Person, Boolean> selectColumn;
public void initialize() {
// 设置selectColumn的CellFactory为CheckBoxTableCell,启用复选框
selectColumn.setCellFactory(CheckBoxTableCell.forTableColumn(selectColumn));
// 添加示例数据
tableView.getItems().add(new Person("John", 25, false));
tableView.getItems().add(new Person("Jane", 30, true));
}
public static class Person {
private String name;
private int age;
private boolean selected;
public Person(String name, int age, boolean selected) {
this.name = name;
this.age = age;
this.selected = selected;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean isSelected() {
return selected;
}
}
}
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("tableView.fxml"));
AnchorPane root = loader.load();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这样,你就可以在JavaFX中使用FXML启用TableView中的复选框了。
注意:本答案中没有提及任何特定的云计算品牌商,如腾讯云等。如需了解相关产品和产品介绍,请自行搜索相关信息。
领取专属 10元无门槛券
手把手带您无忧上云