[TreeTableView] filtrage avec
Bonjour
Je tente de faire un filtrage des lignes dans une TreeTableView
j'ai tenté d'utiliser un code internet http://www.kware.net/?p=204#The_Predicate
qui remplace la collection sous jascente du TreeItem (membre children) par une FilteredList<TreeItem<T>>
seulement quand je tente de rajouter un item dans getChildren().add(tt) j'ai l'exception suivant :
Code:
1 2 3 4 5
| Exception in thread "JavaFX Application Thread" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at application.Exemple.lambda$0(Exemple.java:95)
..... |
donc je cherche la meilleurs facon de filtrer TreeTableView qui pourrait fonctionner
si vous aviez une idée ....
merci
vous pouvez tester le problème que je rencontre avec le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| System.out.println("button TEST pressed");
TreeItem<Variable> root2 = new TreeItem<>();
// change root collection
String fieldName = "children";
Optional<Field> optChildren = ReflectionUtils.getAllFields(root2.getClass(), withName(fieldName)).stream().findFirst();
if (optChildren.isPresent()) {
try {
Field children = optChildren.get();
children.setAccessible(true);
// children.set(root2, FXCollections.observableArrayList()); // OK
children.set(root2, new FilteredList<Variable>(FXCollections.observableArrayList(), c -> true));
children.setAccessible(false);
System.out.println("changement list OK");
} catch (Exception ee) {
ee.printStackTrace();
}
}
// add item
{
TreeItem<Variable> tt = new TreeItem<>(new Variable("xxx ", "yyyy ", "zzzzz "));
root2.getChildren().add(tt);
}
}); |