incompréhension binding float vesr string
Bonjour,
J'ai des petits problèmes de compréhension :oops: et 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:
Citation:
0.0001
0.22
3333.0
Code:
1 2
|
colNewModMenge.setCellValueFactory(new PropertyValueFactory<NewModBindingVO, String>("newModMenge")); |
bien que dans "NewModBindingVO" , ma "newModMengeProperty() soit une FloatProperty ...
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
Code:
1 2
|
Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new FloatStringConverter()); |
j'ai une erreur:
Citation:
The method bindBidirectional(Property<String>, Property<?>, Format) in the type Bindings is not applicable for the arguments (StringProperty, FloatProperty, FloatStringConverter)
alors que si je fais:
Code:
1 2
|
Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new NumberStringConverter("##0.0##")); |
Ca marche presque bien...
si je clique dans ma table des
Citation:
0.0001
33.333
22.0
ça s'affiche bien dans mon textfield ou je peux éditer
des:
Citation:
0.123
666 (qui s'afficheront 666.0 dans ma table)
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.
et si je clique à nouveau dessus, il ne s'affiche que 0.0 dans mon textField