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 : 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 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?