[java - interface] le panel - position de composants
Forum Programmation : [java - interface] le panel - position de composants
Salut,
J'ai une JFrame (ma fenetre) avec un layout de type BorderLayout. Je place à l'interieur a gauche ("WEST" ), un panel de type GridBagLayout contenant (pour l'instant) de simple bouton l'un en dessous de l'autre.
Comment faire pour que l'ensemble des composants du GridBagLayout soit positionné en haut (j'ai essayé la contrainte anchor avec north mais ca ne marche pas) ?
Le probleme, c'est que mes boutons ne remplissant pas tout l'espace en hauteur dédié par la JFrame, ils se retrouvent au milieu.
(la fenetre est une fenetre option avec a gauche la liste des differents boutons et a droite, le contenu du panel correspondant au bouton que l'on a cliquer)
Voici un apercu de mon interface :
(en gris, la couleur de fond de mon panel gridbaglayout, il occupe donc tout l'espace qui lui est dedié)
Merci d'avance
a+
J'ai contourné le probleme comme ceci :
J'ai mis mon panel (panelGBL) de layout gridbaglayout dans un panel (panelBL2) de layout borderlayout. le panelGBL est placé dans panelBL2 au Nord. Enfin mon panelBL2 est placé dans ma JFrame a gauche.
a+
J'ai encore quelques soucis :
Dans la partie droite de ma JFrame, mon panel n'est pas aussi grand que l'espace qui lui ai dedié. je pourrais mettre un setSize a mon panel mais comment connaitre les dimensions de l'espace que mon panel peut remplir ?
Mon second probleme est que je souhaiterais que le texte de mon label titre soit centré......si j'applique un fill="horizontal" au label lors de l'ajout, le texte n'est pas centré, bien que le fond remplisse entierement l'espace qui lui ai dedié (ce qui ai voulu) mais comme dit precedemment, le fond n'occupe pas tout l'espace dedié (il occupe tout l'espace du panel gridbaglayout).
Pour centrer le texte, j'ai essayé monLabel.setAlignmentX(JComponent.CENTER_ALIGNMENT); mais ca ne marche pas.
Deux screens :
Image 1
Image 2
Je suis également aller sur cette page pour le texte :
Une page infos-du-net
Mais n'y a t-il pas plus simple ?
merci a+
Pour le Label, il y a une méthode spécifique au label, car en fait ton label est suffisamment grand (avec le fill), c'est le texte du label qui n'est pas aligné. Essaie:
Code :
|
ok merci.
je peux pas testé maintenant mais a mon avis ca va marcher ;-)
J'etais pas loin tout de meme, setAlignmentX - setHorizontalAlignment :-D
merci beaucoup, je testerais ca lundi
a+
Pour l'alignement du label, ca marche, c bon merci.
Mais j'ai encore deux soucis, apres j'espere que ca sera bon lol !
Le premier concerne la panel qui n'occupe pas tout l'emplacement qu'il pourrait occupé.
Le deuxieme concerne mes boutons dont leur "case" dedié est de taille non égal. (le dernier a une case plus grande). Pour me visualiser, j'ai mis l'option BOTH du gridbaglayout pout les boutons.
Un screenshot
Merci d'avance
a+
AS-tu mis un layout sur le parent du panel ? Je rappelle que pour l'élément racine JFrame, il y a la méthode setLayout() à utiliser avec le setRootPane().
pour les boutons, fixe les tailles avec setMaximumSize() et setPreferredSize() et mets des éléments vides:
http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html#space
L'exemple en lien montre l'utilisation de Box pour mettre un élément invisible, c'est mieux qu'un panel car il ne se réaffiche pas.
Ok merci
Je vais regarder tout ca demain.
J'ai bien mis des setLayout partout (mon JFrame est en BorderLayout)
a+
Il y a 867 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
