Dans la serie bug kikool-lol, j'en ai trouve un bien marrant aujoud'hui : je voulais implementer des boutons de controle pour les dialogues, panneau dockables et autres sous affichages de l'application et donc j'ai decide de creer des composants implementant CustomNode et Resizable. Sauf, qu'au final je me suis retrouve avec... ca :
Sachant que les deux composants sont crees de maniere 90% similaire (un Circle et soit deux Line qui se croisent, soit un Path, le tout dans un Group).
On a donc :
- j'affiche mes deux composants chacun separement : Ok ils se dessinent chacun correctement.
- ensuite j'affiche un vert, un rouge et un vert.
- dans un Group avec des decallages horizontaux pour bien les positionner : les 3 s'affichent OK
- dans un Stack avec des decallages horizontaux pour bien les positionner: les 3 s'affichent decalles vers le haut et le rouge s'affiche mal.
- dans un HBox : les 3 s'affichent mais le rouge s'affiche mal (d'ailleurs on peut voir encore un autre type de decallage quand ces composants sont redimensionnes et integres dans l'un des sous-affichage derriere : le cercle vert et le cercle rougne ne sont meme plus alignes horizontalement... ca ressemble au resultat de Stack sauf que dans le code de ce composant, ... ils sont dans une HBox qui elle est placee dans un group...)
- dans un VBox : les 3 s'affichent mais le rouge s'affiche mal.
- dans un Tile : seul le dernier vert s'affiche car les noeuds sont superposes . Pour les voir il faut forcer les dimensions du Tile (mais bizarrement, pas son nombre de ligne ou de colonnes), la croix ne s'affiche pas alors correctement.
- dans un Flow: seul le dernier vert s'affiche car les noeuds sont superposes . Pour les voir il faut forcer les dimensions du Flow, la croix ne s'affiche pas alors correctement.
Puis je me suis dis : "y a peut-etre un bug dans le bind des Line" et donc je remplace le code qui fait la croix avec des Line par un qui utilise Path comme la tete de fleche... ben non... pareil...
JavaFX & les layouts c'est que du fun, et plein de cheveux en moins...
Partager