OVH Cloud OVH Cloud

GridBagLayout

1 réponse
Avatar
julien
Bonjour,

j'essaye d'utiliser un GridBaglayout. Je commence par quelque chose de
facile, mais je bute déjà sur plusieurs problèmes:

* J'ai une class qui crée un JDesktopPane, et appelle une autre classe
qui crée une JInternalFrame avec le GridBagLayout:
frame = new JInternalFrame
maximize(JInternFrame);

* la JInternalFrame ne connait pas sa taille d'affichage final, donc il
n'y a pas de SetSize dans cette classe. Le GridBagLayout est créé dans
la constructeur de la JInternalFrame

* l'affichage de ma JInterlFrame, plusieurs problemes:
-le GridBagLayout ne remplit pas 100% de la JInternalFrame: il y des
marges sur les cotés, je ne sais pas comment forner le GridBagLayout a
prendre 100% de la palce disponible

- le GridBagLayout a cette forme:

-----------------------------
| Section 1 |
-----------------------------
| Section 2 |
| |
| |
-----------------------------
|Section 3a | Section 3b |
| | |
| | |
-----------------------------
| Section 4 |
| |
| |
-----------------------------

Si, par exemple, Section 4 contient juste un JPanel panel4 = new
JPanel(), sa hauteur n'est pas bonne (trop petite). Par contre, si je
mets d(autres composants à l'intérieur, sa taille devient correcte!


Je ne sais pas comment régler ces 2 problèmes: prendre 100% de la taille
disponible, et éviter une taille faible pour les Panel "vides".

Merci
Julien

1 réponse

Avatar
Philippe DE RIVAROLA
Bonjour,

Le GridBagLayout demande pas mal d'experience(s) !
Dans votre cas vous pouvez peut-etre jouer sur la taille preferee
des panels pour que, même vides, ils occupent une certaine surface
(methode setPreferredSize).
Pour la place disponible il faut travailler sur les weightx et weighty des
GridBagConstraints, ainsi que sur le fill (=GridBagConstraints.BOTH
par exemple).
Si ca ne marche toujours pas (le GridBagLayout a toujours raison ;-),
vous pouvez essayer le TableLayout :
http://www.clearthought.info/sun/products/jfc/tsc/articles/tablelayout/

Philippe