2016-11-03 1 views
0

Dans mon application TornadoFX (qui est un wrapper à JavaFX8), je crée un ButtonBar avec un seul bouton. J'utilise le DSL (code, pas XML) pour cela.Une région inattendue à l'intérieur d'un ButtonBar

De façon inattendue, tous mes boutons sont écrasés sur la droite. La vue panoramique montre qu'il y a une région avant tous mes boutons avec Hgrow = Always.

  • D'où vient cette région? Comment puis-je le supprimer/régler sur Hgrow = Never?

  • En général, comment puis-je obtenir des références aux enfants d'un ButtonBar? GetChildrenUnmodifiable renvoie une liste vide.

Merci

Répondre

2

C'est ce que ButtonBar est censé faire. Selon la ButtonBar docs:

ButtonBar est essentiellement un HBox, avec les fonctionnalités supplémentaires pour le système d'exploitation bouton spécifique placement.

* souligné dans

La barre de boutons ajoutera des régions pour appuyer sur les boutons à l'endroit où ils devraient être sur votre système d'exploitation. Pour changer l'endroit où les boutons se retrouvent sur la barre, utilisez ButtonBar.setButtonData(Button, ButtonData).

+0

Comment réduire cette zone à zéro? Mes boutons ne sont pas standard. – voddan

+0

Il n'y a pas de chemin autant que je sache. Votre meilleur pari serait d'utiliser un 'HBox' et de le styler correctement. Ou simplement les définir tous comme 'ButonData.LEFT'. Notez que lorsque vous utilisez un 'ButtonBar', l'ordre des boutons peut également changer entre les systèmes d'exploitation. –

+0

Cela fonctionne dans une certaine mesure. Qu'en est-il de l'obtention des boutons? De toute façon? – voddan