Я пытаюсь создать табличное представление, которое показывает каждое действие и участников, которые участвуют. У действия есть список участников, и у участника есть список действий. Я застрял при получении столбцов для отображения имени действия и участника этого действия. Я хотел бы показать комбинацию элемента активности в каждой строке. Я также не уверен, как я должен заполнить таблицу, так как я передаю список действий.
Это то, к чему я стремлюсь.
+----------+------------+-------------+----------------+-------------+
| Activity | Type | Member name | Member surname | Member rank |
+----------+------------+-------------+----------------+-------------+
| act1 | Internship | Peter | Peterson | 1 |
| act1 | Internship | Bob | Bobber | 3 |
| act2 | Sport | Tim | Tom | 1 |
| act2 | Sport | Bob | Bobber | 3 |
+----------+------------+-------------+----------------+-------------+
public class ActivityListController extends GridPane {
@FXML
private TableView<Activity> tblActivities;
@FXML
private TableColumn<Activity, String> colActivityName;
@FXML
private TableColumn<Activity, String> colType;
@FXML
private TableColumn<Activity, List<String>> colFirstName;
@FXML
private TableColumn<Activity, String> colLastName;
@FXML
private TableColumn<Activity, String> colRank;
private final DomeinController dc;
public ActivityListController(DomainController dc) {
this.dc = dc;
FXMLLoader loader = new FXMLLoader(getClass().
getResource("ActivityList.fxml"));
loader.setController(this);
loader.setRoot(this);
try {
loader.load();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
colActivity.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getName()));
colActivy.setCellFactory(TextFieldTableCell.forTableColumn());
colFirstName.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getMembers().???));
colLastName.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getMembers().???));
colRank.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getMembers().???));
tblActivities.setItems(dc.getAllActivities());
}