我有一个 ClassTestEvaluation 类型的对象。它拥有一个 Task 类型的 ArrayList。这个数组可以有任意数量的任务并且是不可预测的。我想设置一个表格视图,它将在列中显示给定的任务,以便用户可以输入分数。
我的问题是我不知道如何将一个可变长度的数组设置为另一个对象的一部分作为我的表格视图的源。我无法使用简单的成员 task1、task2 等构建像 ClassTestEvaluationItem 这样的包装器,因为任务的数量不固定。因此,我的问题是我必须做什么才能正确设置任务列的 propertyValueFactories?
我遵循了很多教程,比如这里的教程:https ://docs.oracle.com/javafx/2/ui_controls/table-view.htm 。一般来说,跟随并让他们工作是没有问题的。但它们只处理简单(平面)数据。
TableView<ClassTestEvaluation> table = new TableView<>();
TableColumn colFirstName = new TableColumn("Vorname");
colFirstName.setCellValueFactory(new PropertyValueFactory<ClassTestEvaluation, String>("firstName");
TableColumn colLastName = new TableColumn("Nachname");
colLastName.setCellValueFactory(new PropertyValueFactory<ClassTestEvaluation, String>("lastName");
table.getColumns().addAll(colFirstName, colLastName);
ArrayList<Task> tasks = classTestEvaluation.getTasks();
for(Task t : tasks) {
TableColumn colTask = new TableColumn(t.getTitle());
table.getColumns().add(colTask);
}
如您所见,为 colFirstName 和 colLastName 设置 PropertyValueFactory 并不难。但是对于长度可变并存储在本身是 ClassTestEvaluation 对象的一部分的数组中的任务,我该怎么做呢?
根据 classtest 的任务数量,我希望我的表格视图看起来像这样:
名字 | 姓氏 | 任务 1 | 任务 2 | ...
我希望有人可以在这里帮助我,因为我不明白。非常感谢!
慕妹3242003
相关分类