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).

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;
    }
}
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.

Afin de mieux comprendre, voici un peu de code :

La construction de mon TableView :

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);
... et la création de mon Objet Room :

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
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.

Merci pour votre attention.

Marc