Bonjour,
J’ai un petit problème avec une TableView qui ne doit pas être compliqué à résoudre mais dont je ne trouve pas la solution sur le net !
Je crée une TableView composée de 2 colonnes. La première est l’affichage du enum nommée Room (voir code ci-dessous) et la seconde une checkBox. L’affichage ne cause pas de problème mais je ne sais pas comment récupérer les données pour construire un objet Room (pas une enum dans ce cas-ci).
Je précise que je ne souhaite pas être 'informé' quand on coche une case de la ChecBox mais simplement savoir si un nom de chambre a été coché pour construire mon Objet Room.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public enum Room { SCREAM("Scream"), CARRIE("Carrie"); private String label; /** * Constructeur */ Room(String label) { this.label = label; } public String getLabel() { return this.label; } }
Afin de mieux comprendre, voici un peu de code :
La construction de mon TableView :
... et la création de mon Objet Room :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 data = FXCollections.observableArrayList(Room.values()); table.setItems(data); final TableColumn<Room, String> roomCol = new TableColumn<>(Messages.getString("rooms")); roomCol.setCellValueFactory(new PropertyValueFactory("label")); roomCol.prefWidthProperty().bind(table.widthProperty().multiply(0.8)); final TableColumn<Room, Boolean> checkCol = new TableColumn<>("Check"); checkCol.setCellFactory(CheckBoxTableCell.forTableColumn(checkCol)); checkCol.prefWidthProperty().bind(table.widthProperty().multiply(0.2)); checkCol.setEditable(true); table.setEditable(true); table.getColumns().setAll(roomCol, checkCol);
J'imagine créer ma liste de Room en bouclant mon model de la TableView et vérifier si pour un nom d'une Room, la CheckBox est cochée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Room room = new Room(); cd.getRooms_TableView().getTable().getSelectionModel(). //ceci est un essai ! room.setIdTeam(cd.getTfChipNbr().getText()); room.setNameRoom(cd.getCbbNameRoom().getValue()); //Ceci sera supprimé. Je créais au départ une seule Room dont le nom était sélectionné dans une ComboBox
Merci pour votre attention.
Marc
Partager