formatage et edition d'une colonne d'un TableView
salut,
j'aimerais rendre une colonne d'un tableview editable. voici mon code:
Code:
1 2 3 4 5 6
|
userTable.setEditable(true);
...
birthdayCol.setCellValueFactory(new PropertyValueFactory<User, LocalDate>("birthday"));
birthdayCol.setCellFactory(TextFieldTableCell.forTableColumn(new LocalDateStringConverter()));
birthdayCol.setOnEditCommit(e -> birthdayCo_Edit(e) ); |
pour formater les valeurs de cette colonne, j'utilise:
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
| birthdayCol.setCellFactory(p -> {
return new TableCell<User, LocalDate>() {
@Override
protected void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
} else {
final DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy");
setText(item.format(format));
if(item.isEqual(LocalDate.of(2015, 8, 13))){
TableRow currentRow = getTableRow();
currentRow.setStyle("-fx-background-color: red;");
//setStyle();
}
}
}
};
}); |
tout se passe bien quand j'utilise un seul appel à la méthode setCellFactory().
Malheureusement quand j'utilise les deux codes, le dernier appelé va masquer le premier. et çà est tout a fait logique. donc comment je puisse formater et editer une colonne d'une tableview en même temps.