Bonjour,

J'ai des petits problèmes de compréhension 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:

0.0001
0.22
3333.0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new FloatStringConverter());
j'ai une erreur:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Bindings.bindBidirectional(mengeRtf.textProperty(), aModifierVo.newModMengeProperty(), new NumberStringConverter("##0.0##"));
Ca marche presque bien...

si je clique dans ma table des
0.0001
33.333
22.0
ça s'affiche bien dans mon textfield ou je peux éditer
des:
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