Comment puis-je le droit d'aligner le texte à l'intérieur d'un JLabel?
J'ai le code suivant:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
for(int xx =0; xx < 3; xx++)
{
JLabel label = new JLabel("String");
label.setPreferredSize(new Dimension(300,15));
label.setHorizontalAlignment(JLabel.RIGHT);
panel.add(label);
}
C'est la façon dont je voudrais que le texte à chercher:
[ String]
[ String]
[ String]
c'est à quoi il ressemble
[String]
[String]
[String]
Pour une raison que l'étiquette ne veut pas se mettre à la taille préférée, j'ai spécifié et je pense que de ce fait il n'a pas le droit d'aligner mon texte de l'étiquette. Mais je ne suis pas sûr. Toute aide serait appréciée.
Jetez un oeil à cet exemple - java2s.com/Code/Java/Swing-JFC/...
OriginalL'auteur Grammin | 2011-06-06
Vous devez vous connecter pour publier un commentaire.
La setPreferredSize/MinimumSize/MaximumSize méthodes est dépendante de la structure gestionnaire du composant parent (dans ce cas).
D'abord essayer avec setMaximumSize au lieu de setPreferredSize, si je ne vais pas tort devrait travailler avec BoxLayout.
En plus: vous devrez probablement utiliser et jouer avec les colles:
Si vous avez besoin de la Y_AXIS BoxLayout vous pourrait également être utilisé imbriqués: panneau de
par anonyme upvoter, vraiment bien décrits +1
Le deuxième extrait conduit à la "BoxLayout ne peuvent pas être partagés" l'exception". Devrait être verticalPanel.setLayout(new BoxLayout(verticalPanel, BoxLayout.Y_AXIS));
merci, vous avez raison. Fixe cette vieille buggé réponse!
OriginalL'auteur Heisenbug
🙂
OriginalL'auteur dalvarezmartinez1
Je pense que ça dépend de la mise en page que vous êtes en utilisant, en XY (dont je me souviens est une sorte de mise en page dans JBuilder), il doit travailler, mais dans d'autres, peut être un problème. Essayez de modifier la taille minimale de prédilection de la taille.
OriginalL'auteur Sergii Zagriichuk
C'est un peu ennuyeux, mais vous pouvez utiliser imbriquée JPanels avec boîte de mises en page si vous voulais plus de flexibilité dans votre alignement qu'avec la grille de mise en page.
J'ai utilisé horizontale de la colle pour le maintenir à la droite peu importe la taille, mais vous pouvez mettre en rigide zones pour en faire une distance spécifique.
OriginalL'auteur jhlu87
Vous devez vous assurer que votre
LayoutManager
est de dimensionnement de l'étiquette pour remplir la zone de la cible. Vous avez probablement unJLabel
composant qui est exactement à la taille de la longueur du texte et qui a été aligné à gauche dans la mise en page.OriginalL'auteur Lawrence Dol
BoxLayout accepté PreferredSize, si l'espace sont partagés, mais qui avez-vous dire que tous les JComponets dans un Conteneur doit être visible
OriginalL'auteur mKorbel
plutôt que d'utiliser
utilisation
ainsi on a:
OriginalL'auteur nepaluz
Ne pourriez-vous pas utiliser les éléments suivants?
Cela fonctionne à l'intérieur d'un
JFrame
Contenant au moins. Pas sûr au sujet d'unJPanel
.OriginalL'auteur Zane
Avec les réponses de vous les gars, je étais en mesure de déterminer que BoxLayout ne prend pas en charge l'alignement du texte que je voulais, alors je l'ai changé pour
et tout a bien fonctionné.
pourriez-vous élaborer? J'ai été en utilisant BoxLayout.Y_AXIS dans l'exemple de code.
jetez un oeil à mon post. J'ai édité.
OriginalL'auteur Grammin