Bonjour,
j'ai un soucis dans une TableView pour laquelle j'essaye de créer une colonne de CheckBox. Le fait d'être coché ou pas est fonction de l'objet de la ligne, mais ne renvoie pas à une propriété de la classe. Voici mon code:
Mon principal problème est que les cases ne sont pas cochées lorsque la valeur retournée est true.
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
19
20
21
22
23
24
25 //Créer la table table = new TableView<Trans>(); TableColumn<Trans, Trans> newColString = new TableColumn<Trans, String>("Name"); newColString.setCellValueFactory(new PropertyValueFactory<>("name")); table.getColumns().add(newColString); //Créer la colonne TableColumn<Trans, Boolean> booleanColumn = new TableColumn<Trans, Boolean>("test checkbox"); //En faire une colonne de checkBox booleanColumn.setCellFactory(CheckBoxTableCell.forTableColumn(booleanColumn)); //Attribuer le fait d'être cocher ou pas booleanColumn.setCellValueFactory(param -> { Trans trans = param.getValue(); Boolean value = false; if (param.getName() == ""){ System.out.println(param.getName()+"\t"+true); return new ReadOnlyObjectWrapper<Boolean>(true); }else{ System.out.println(param.getName()+"\t"+true); return new ReadOnlyObjectWrapper<Boolean>(false); } }); /Permettre de cocher ou de décocher booleanColumn.setEditable(true); //Ajouter la colonne table.getColumns().add(booleanColumn);
Mon autre problème (moins important) est que je ne parvient pas à cocher ou décocher malgré le setEditable à true. Probablement lié au ReadOnlyObjectWrapper, mais je ne sais pas comment créer une ObservableValue<Boolean>. C'est moins important cependant.
Auriez-vous des pistes pour moi?
Partager