2010-09-07 7 views
5

Je suis en train de construire un simple tableau d'état à l'aide MigLayout comme suit:Comment éviter MigLayout de dépasser les limites d'un conteneur

setLayout(new MigLayout("fillx", "[][p]")); // removing constructor args makes no difference 
add(createStatusLabel(), "span 2, wrap"); 
add(createProgressBar(), "growx, pushx"); 
add(createCancelButton(), ""); 

Cela fonctionne bien tant que le message d'état affiché par l'étiquette d'état est court assez pour tenir dans la taille du panneau actuel (le bouton d'annulation reste justifié à droite, et la barre de progression se redimensionne pour occuper l'espace restant). Si le message d'état est trop long, il n'est pas rogné et la zone dépasse les limites du conteneur, ce qui entraîne le retrait du bouton d'annulation hors de l'écran.

Des suggestions sur la façon d'éviter que cela se produise?

Merci

Répondre

8

Essayez de régler la largeur maximale de l'étiquette à 100%.

Vous pouvez le faire en modifiant la disposition de l'étiquette "span 2, wrap, wmax 100%"

Dans mes tests, j'ai trouvé qu'il n'a toujours pas l'air tout à fait raison, vous pouvez soustraire un peu de longueur (quelque chose comme wmax 100% - 10px) pour l'éloigner du bord.

+1

Merci - Je venais juste de me connecter pour répondre à ma propre question avec la même solution, mais vous m'avez battu. J'ai également trouvé 100% était trop grand - peut-être ne permettant pas la bordure ou les encarts. J'ai également essayé d'utiliser la référence "parent" dans l'expression width, mais je vois que MigLayout ne le permet plus. (Je voudrais vous voter mais je n'ai pas encore assez de points) – zorgbargle

+0

Et c'est pourquoi j'aime Internet. Merci à vous deux! –

Questions connexes