[java swing] probleme de taille avec un JTextField

probleme de taille avec un JTextField [java swing] - Java - Programmation

Marsh Posté le 14-01-2004 à 09:34:44    

'lut tt le monde
voila j'ai un petit probleme...  
je cree un JTExField comme ca :  
JTextField toto = new JTextField(20);
 
et quand j'insere ca dans mon JPanel, (avec un gridLayout) la taille n'est plus la bonne (ca passe a 60 au lieu de 20)
y a t il un moyen de le forcer a laisser 20 ?

Reply

Marsh Posté le 14-01-2004 à 09:34:44   

Reply

Marsh Posté le 14-01-2004 à 09:38:52    

Le nombre de colonnes que tu specifies dans le constructeur est utilise pour calculer la taille preferentielle du composant (cf Javadoc)
 
donc avec un GridLayout, vu que la taille preferentielle n'est pas utilisee, ca sert a rien.
 
conclusion, utilise un autre Layout :D

Reply

Marsh Posté le 14-01-2004 à 10:22:09    

et si je peux pas faire autrement ?

Reply

Marsh Posté le 14-01-2004 à 10:26:14    

si tu peux pas changer de layout, tu peux pas non-plus utiliser le layout adapté, c'est tout.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 14-01-2004 à 11:36:50    

ou alors tu peux recreer un composant a toi aussi :D
ca doit pas etre bien dur en creant une sous-classe de JTextField et tu surcharges les methodes qui vont bien...nan ?

Reply

Marsh Posté le 14-01-2004 à 12:12:07    

souk a écrit :

ou alors tu peux recreer un composant a toi aussi :D
ca doit pas etre bien dur en creant une sous-classe de JTextField et tu surcharges les methodes qui vont bien...nan ?

nan, au pire, il fout le JTextField dans un JPanle qui un layout différent et il insère le jpanel à la place du JTextField, mais GridBagLayout est fait pour faire ce qu'il veut.
 
C'est vrai que GridBagLayout demande un apprentissage, mais on est vachement récompensé après.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 17-01-2004 à 16:41:43    

oui, ou même si tu utilises un BoxLayout en prenant bien soin de donner comme taille maximum à ton JTextField égale à sa taille préférée :  
 

Code :
  1. JTextField tf = new JTextField(...);
  2. tf.setMaximumSize(tf.getPreferredSize());


 
Normalment ca peut suffir, et ca evitera le GridBagLayout, même si je pense que le GridBagLayout mérite d'être appris !


Message édité par babthefox2002 le 17-01-2004 à 16:43:36
Reply

Marsh Posté le 17-01-2004 à 17:07:12    

il a dit qu'il pouvait pas changer de Layout :o
et la solution de sieur nraynaud convient ;)

Reply

Marsh Posté le 17-01-2004 à 18:32:57    

jpanel avec un flowlayout et le jtextfield dedans tout ca dans UNE "case" du panel pere en gridlayout.
c un peu crad, mais bon c swing koi ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed