Bonjour,
J'ai des petits problèmes de compréhensionet donc d'affichage et de binding avec des Float
dans un tableView bindé (bidirectionnal) avec un textField
Voici la définition de ma tableView. J'ai défini ma colonne en String et ça affiche correctement mes Float...
Par exenple:
0.0001
0.22
3333.0bien que dans "NewModBindingVO" , ma "newModMengeProperty() soit une FloatProperty ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 colNewModMenge.setCellValueFactory(new PropertyValueFactory<NewModBindingVO, String>("newModMenge"));
que
d'un autre coté, j'ai un textField que je bind "aModifierVo" qui n'est pas autre chose qu'un Item de mon observable collection qui est source de ma table.
si je fais
j'ai une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new FloatStringConverter());
alors que si je fais:The method bindBidirectional(Property<String>, Property<?>, Format) in the type Bindings is not applicable for the arguments (StringProperty, FloatProperty, FloatStringConverter)
Ca marche presque bien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new NumberStringConverter("##0.0##"));
si je clique dans ma table des
ça s'affiche bien dans mon textfield ou je peux éditer0.0001
33.333
22.0
des:
le Hic c'est quand je dépasse 3 chiffres derrière la virgule, comme dans 0.0001 qui s'affiche alors 1.0E-4 dans ma table.0.123
666 (qui s'afficheront 666.0 dans ma table)
et si je clique à nouveau dessus, il ne s'affiche que 0.0 dans mon textField
Partager