Comment puis-je garder JTextFields en Java Swing BoxLayout de l'expansion?
J'ai un JPanel
qui ressemble à quelque chose comme ceci:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
...
panel.add(jTextField1);
panel.add(Box.createVerticalStrut(10));
panel.add(jButton1);
panel.add(Box.createVerticalStrut(30));
panel.add(jTextField2);
panel.add(Box.createVerticalStrut(10));
panel.add(jButton2);
... //etc.
Mon problème est que le JTextField
s deviennent d'énormes verticalement. Je veux seulement être assez élevé pour une seule ligne, puisque c'est tout ce que l'utilisateur peut taper dans les. Les boutons sont très bien (ils ne sont pas verticalement).
Est-il possible de garder le JTextField
s de l'expansion? Je suis assez nouveau à se Balancer, alors laissez-moi savoir si je suis tout a fais horriblement mal.
Vous devez vous connecter pour publier un commentaire.
"new JTextField(10)"
. Maintenant, vous allez avoir des motifs raisonnables de largeur et de hauteur.Si vous voulez que la largeur de continuer à changer, juste de la maintenir à MAX INT. Alors...
Dans mon cas, j'ai besoin d'une combinaison de toutes les réponses pour que cela fonctionne correctement. Si je n'utilise pas de colle, il n'est pas centré verticalement; si je n'ai pas restreindre la taille maximale, il s'étend verticalement; si je me limiter à la fois la largeur et la hauteur, il est trop petit, être seulement assez large pour contenir l'initialisation de texte.
définir la hauteur max.
ou les mettre dans une région de scroll
setMaximumSize
, qui prend uneDimension
(largeur ET hauteur) en tant que paramètre. Il semble juste comme il DOIT y avoir une meilleure façon.