Bonjour,
J’ai une TableView composée de 2 colonnes. La première est l’affichage du enum (EnumRoom) nommée roomCol (affiche le nom des chambres). La seconde, un String (qui correspond à l’état d’une chambre -> String "inoccupée" ou si elle est occupée, affiche le nom de la personne qui l’occupe) nommée stateRoomsCol.
Voici un bout de code :
Via la technologie RMI, je souhaite modifier une seule cellule du TableView (c-à-d l’état de la chambre -> passer de l’état : inoccupée à l’état : nom de la personne qui occupe la chambre) à l’aide d’une méthode appelée par exemple updateCellRoom (via client RMI).
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 // Map<EnumRoom, StringProperty> mapRooms; data = FXCollections.observableArrayList(EnumRoom.values()); table.setItems(data); //mapRooms = Arrays.stream(EnumRoom.values()) // .collect(Collectors.toMap(Function.identity(), nameTeam -> new SimpleStringProperty())); final TableColumn<EnumRoom, String> roomCol = new TableColumn<>("Nom chambre"); roomCol.setCellValueFactory(new PropertyValueFactory("label")); final TableColumn<EnumRoom, String> stateRoomsCol = new TableColumn<>("Nom personne"); //stateRoomsCol.setCellValueFactory(feature -> { // final EnumRoom room = feature.getValue(); // if(team!=null&&nameRoom.equalsIgnoreCase(room.getLabel())){ // return mapRooms.get(nameRoom); // }else{ // return new SimpleStringProperty("inoccupée"); // } // });
Mon problème n’est pas la technologie RMI mais c'est que je ne parviens pas à modifier la cellule qui représente l’état de la chambre.
Dans le code qui précède, j'ai essayé en utilisant une Map (code en commentère) mais je n'ai pas su résoudre le problème.
La méthode updateCellRoom 'contiendrait' le nouvel état de la chambre (nom de la personne qui occupe la chambre) et le nom de la chambre en question. Et donc, ce que je souhaite c’est d'adapter la cellule de la colonne stateRoomsCol qui correspond au nom de la chambre (nom de l'enum qui correspond au nom que la méthode updateCellRoom 'contient') -> colonne roomCol. Tout ceci sans modifier l'état des autres cellules de la colonne stateRoomsCol.
J'espère que j'ai pu me faire comprendre
Si quelqu'un peut m'aider ... Merci de votre attention.
Marc
Partager