2017-07-26 2 views
1

J'ai un JTextField dans mon JFrame et j'ai mis le texte dans le JTextField.Comment faire pour que la largeur d'un JTextField soit statique?

Lorsque le texte est long, JTextField obtient la longueur du texte, puis la nouvelle largeur de jTextField est égale au texte. Il change la forme de ma fenêtre et les endroits des autres composants. Comment puis-je faire JTextField s avoir une largeur statique de sorte qu'ils ne seront pas redimensionnés en fonction de la longueur du texte qui passe?

+0

Quelle mise en page utilisez-vous dans le conteneur parent du champ de texte? Spécifiez-vous des tailles min/max/préférées pour le champ de texte? – Njol

+0

Je n'utilise aucune disposition. la mise en page est apparue comme "design libre", je n'ai pas changé min max tailles préférées. – LadyMormont

Répondre

2

La chose la plus simple que vous pouvez faire est de définir la largeur de colonne, le plus souvent lors de l'initialisation du JTextField, par exemple:

new JTextField("Hello World!", 5); 
new JTextField(10); 

Mais le conteneur aura un gestionnaire de mise en page - si vous ne spécifiez pas explicitement , il a probablement un défaut. JFrame commence par BorderLayout dans le panneau de contenu, bien que si vous avez ajouté d'autres panneaux entre le JFrame et le JTextField, nous aurions besoin de savoir cela pour avoir une meilleure idée du gestionnaire de disposition.

Certains gestionnaires de disposition imposent également la largeur du champ, ce qui constitue une autre façon de résoudre votre problème.