Colonne de CheckBox sans propriété dédiée
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:
Code:
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 principal problème est que les cases ne sont pas cochées lorsque la valeur retournée est true.
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?