INTERFACE : Fixer la largeur d'un JTextField dans une "ligne" GridLayout au mill

java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007 - 22 déc. 2005 à 20:13
java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007 - 24 déc. 2005 à 00:01
J'ai une ligne avec deux groupes de JButtons séparés par un JTextField. Le tout dans un GridLayout sur une ligne.



Il y a un tableau juste au dessus dans un JScrollPane avec un tableau à l'intérieur. Je veux faire en sorte que les
JButtons du GridLayout soient bien alignés sous les colonnes du tableau contenu dans le JScrollPane.



Voilà pourquoi j'aimerais changer la largeur du JTextField du milieu au
millimètre près pour que les deux ensembles soient bien alignés.



Le problème c'est que le GridLayout divise equitablement la
ligne pour que les JButtons et le JTextField aient la même largeur.



J'ai décrit ça de cette facon pour bien montrer qu'un gridbag est
inutile (impossible de caler les colonnes à l'interieur du JScrollPane
sur la ligne de JButtons en dessous)



Quelle methode permet de fixer la largeur d'un JTextField ?



Merci de votre aide mon appli à l'ai toute crado à cause d'un truc tout con d'interfacage.

4 réponses

luuuuudooooo Messages postés 64 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 2 août 2006 4
23 déc. 2005 à 10:38
Salut,

je ne sais pas si c'est ce dont tu cherches mais j'utilise également le GridBagLayout et pour fixer une longueur à mes composants, j'utilise tout le temps cette méthode:

setPreferredSize(new Dimension(x, y)); //x et y sont 2 int
0
java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007
23 déc. 2005 à 11:24
oui, c'est le genre de methode que j'ai essayé et qui ne fonctionne pas chez moi. Voilà comment je l'ai utilisée :



JPanel Big6 = new JPanel(new GridLayout(5,1));

GridBagConstraints contrainte = new GridBagConstraints();

Big6.setLayout(gridbag);



(...)



JPanel PanTotal = new JPanel (new GridLayout(1,21));



JButton total = new JButton ("TOTAL");

PanTotal.add(total);



JLabel totalvide = new JLabel ("");

PanTotal.add(totalvide);



(...) // j'ajoute un groupe de labels qui affiche des infos à aligner sous un tableau



totalvide = new JLabel ("");

PanTotal.add(totalvide);

totalvide.setPreferredSize(new Dimension(100,100));

// la j'ai mis des valeurs bidons mais il n'y a aucune modification

// tous les éléments de la ligne gardent la même largueur !!!



(...) // pareil un autre groupe de labels



totalvide = new JLabel ("");

PanTotal.add(totalvide);

totalvide = new JLabel ("");

PanTotal.add(totalvide);



donnerContrainte(contrainte,0,4,1,1,100,9);

gridbag.setConstraints( PanTotal,contrainte);

Big6.add( PanTotal);
0
luuuuudooooo Messages postés 64 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 2 août 2006 4
23 déc. 2005 à 11:29
Il y a une question que j'aimerais te poser

Tu fais PanTotal.add(totalvide); uniquement à la fin ?

pcq quand je lis ceci :

totalvide = new JLabel ("");
PanTotal.add(totalvide);
totalvide = new JLabel ("");
PanTotal.add(totalvide);

Pour moi c'est un nouveau JLabel que tu ajoute auquel tu n'as pas fais setPreferredSize

Enfin je me trompe peut-être il faut voir comment tu as codé.

Si tu veux tu peux m'envoyer le code par mail et j'y jette un coup d'oeil si il n'est pas trop long
0
java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007
24 déc. 2005 à 00:01
J'ai essayé de mettre des noms
différents pour chaque JLabel et d'appliquer des
setPreferredSize mais ça n'a rien
donné...



Merci pour ta proposition mais mon code
est beaucoup trop long (près de 8 000
lignes)



JLabel totalvide = new JLabel ("");

PanTotal.add(totalvide);

totalvide.setPreferredSize(new Dimension(200,100));



TabTotal = total();

for (int i=0;i<7;i++)

{

valtotal[i] = new JButton (""+TabTotal[i]);

valtotal[i].setForeground(Color.RED);

PanTotal.add(valtotal[i]);

}



totalvide = new JLabel ("");

PanTotal.add(totalvide);



TabTotal = total();

for (int i=7;i<14;i++)

{

valtotal[i] = new JButton (""+TabTotal[i]);

valtotal[i].setForeground(Color.RED);

PanTotal.add(valtotal[i]);

}



JLabel totalvide2 = new JLabel ("");

PanTotal.add(totalvide2);

JLabel totalvide3 = new JLabel ("");

PanTotal.add(totalvide3);

totalvide2.setPreferredSize(new Dimension(100,100));

totalvide3.setPreferredSize(new Dimension(100,100));





et ensuite ajout JPanel Big 6
0
Rejoignez-nous