salut,
j'aimerais rendre une colonne d'un tableview editable. voici mon code:
pour formater les valeurs de cette colonne, j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) );
tout se passe bien quand j'utilise un seul appel à la méthode setCellFactory().
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 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(); } } } }; });
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.
Partager