Lorsque vous utilisez le concepteur d'interface utilisateur pour créer un conteneur GridBagLayout
, JBuilder instancie automatiquement un objet GridBagConstraints
chaque fois qu'un composant est ajouté au conteneur. Il utilise les valeurs de contraintes par défaut, et/ou des valeurs calculées à propos des composants existants au cours de la conversion d'une autre disposition (comme XYLayout
) vers GridBagLayout
. L'éditeur de Constraints de GridBag vous permet de modifier ces contraintes.
L'éditeur de Constraints est accessible de deux manières :
constraints
du composant dans l'inspecteur.Chaque contrainte de l'éditeur de propriété correspond directement à une contrainte de la classe GridBagConstraints
comme spécifié ci-dessous.
Pour plus d'informations sur GridBagLayout
et ses contraintes, voir la rubrique "Tutoriel GridBagLayout.
Utilisez les contraintes de position sur la grille X (gridx
) et Y (gridy
) pour spécifier l'emplacement de la cellule correspondant au coin supérieur gauche du composant. Cette valeur de contrainte est un entier représentant le rang d'une cellule dans une colonne ou une ligne. Par exemple, gridx=0
est la première colonne à partir de la gauche et gridy=0
est la première ligne à partir du haut. De ce fait, un composant ayant les contraintes gridx=0
et gridy=0
sera placé sur la première cellule de la grille (en haut et à gauche).
Il existe une valeur de contrainte supplémentaire pouvant être utilisée pour gridx
et gridy
, appelée RELATIVE
(la valeur par défaut). RELATIVE
spécifie que le composant sera placé relativement au composant placé précédemment comme ci-après :
gridx
, il spécifie que le composant sera placé immédiatement à droite du dernier composant ajouté immédiatement avant lui.gridy
, il spécifie que le composant sera placé immédiatement sous le dernier composant ajouté immédiatement avant lui.Pour spécifier une valeur RELATIVE
de la position X ou de la position Y dans l'éditeur de la propriété Constraints, entrez -1
.
Utilisez les contraintes de position sur la grille Largeur (gridwidth
) et Hauteur (gridheight
) pour spécifier le nombre de cellules de la ligne (gridwidth
) ou de la colonne (gridheight
) qui seront utilisées par le composant. Cette valeur de contrainte est un entier représentant le nombre de cellules d'une ligne ou d'une colonne, ce n'est pas le nombre de pixels.
Il existe deux valeurs de contrainte supplémentaires pouvant être utilisées pour gridwidth
et gridheight
: RELATIVE
et REMAINDER
.
RELATIVE
spécifie que ce composant est le voisin du dernier de la ligne (gridwidth
) ou de la colonne (gridheight
). Un composant utilisant RELATIVE
occupe toutes les cellules restantes sauf la dernière. Par exemple, dans une ligne de six colonnes, si le composant démarre à la troisième colonne, une largeur de grille RELATIVE
va lui faire occuper les colonnes 3, 4 et 5.
REMAINDER
spécifie que ce composant est le dernier de la ligne (gridwidth
) ou de la colonne (gridheight
).
RELATIVE
de Largeur ou de Hauteur dans l'éditeur de la propriété Constraints, entrez -1
.REMAINDER
de Largeur ou de Hauteur dans l'éditeur de la propriété Constraints, entrez 0
.
Utilisez Encarts externes (insets
) pour spécifier en pixels la quantité minimale d'espace externe devant exister entre le composant et les bords de sa zone d'affichage. Vous pouvez spécifier une valeur pour chaque côté du composant séparément : Haut, Gauche, Bas, Droite.
La taille de l'ajout d'espaces spécifie la marge interne d'un composant. Utilisez Largeur (ipadx
) et Hauteur (ipady
) pour spécifier (en pixels) la quantité d'espace à ajouter à la taille minimale du composant en tant que marge interne.
La largeur d'un composant sera au moins égale à sa largeur minimale plus son ipadx
exprimé en pixels. (En dépit du fait que les commentaires Javadoc indiquent ipadx
*2, le code réel n'effectue qu'un seul ajout.) De même la hauteur du composant sera au moins sa hauteur minimale plus les pixels de son ipady
exprimé en pixels.
Exemple :
Valeurs ajoutées à un composant ayant une largeur de 30 pixels et une hauteur de 20 pixels :
Largeur (ipadx
) spécifie le nombre de pixels à ajouter à la largeur minimale du composant.
Hauteur (ipady
) spécifie le nombre de pixels à ajouter à la hauteur minimale du composant.
Utilisez les contraintes de poids pour spécifier comment distribuer l'espace conteneur supplémentaire verticalement (weightx
) et horizontalement (weighty
) lorsque le conteneur est redimensionné. Les poids déterminent comment l'espace est réparti entre les composants lorsque le conteneur est agrandi au-delà de sa taille par défaut.
Par exemple, si vous avez trois composants avec des poids de 0.0, 0.3 et 0.2, lorsque le conteneur est agrandi, aucune partie de l'espace supplémentaire ne sera attribuée au premier composant, les 3/5 seront attribués au deuxième et les 2/5 au troisième.
Remarque :Si tous les composants ont des poids nuls sur un axe, les composants vont s'agglutiner au centre du conteneur par rapport à cette direction et ne seront pas agrandis au-delà de leur taille préférée. GridBagLayout
place un espace supplémentaire entre la grille de cellules et les bords du conteneur.
Les valeurs des poids sont de type double
et doivent faire partie de l'intervalle 0.0 à 1.0 inclusif. Zéro signifie que le composant ne reçoit pas d'espace supplémentaire. 1.0 signifie que le composant bénéficie de l'intégralité de l'espace supplémentaire.
La contrainte de poids X (weightx
) est la distribution verticale du poids d'un composant. Le poids d'une ligne est le poids du composant de plus fort weightx
présent dans cette ligne.
La contrainte de poids Y (weighty
) est la distribution horizontale du poids d'un composant. Le poids d'une colonne est le poids du composant de plus fort weighty
présent dans cette colonne.
Pour davantage de détails et d'astuces sur l'utilisation des contraintes weight, voir la rubrique GridBagLayout dans "Construction d'applications avec JBuilder"
.
Lorsque le composant est plus petit que la zone dans laquelle il est affiché, utilisez la contrainte d'ancrage (anchor)
pour indiquer au gestionnaire de disposition comment placer le composant dans cette zone. La contrainte anchor
affecte uniquement le composant à l'intérieur de sa propre zone d'affichage, en fonction de la contrainte fill
du composant.
Par exemple, si la valeur de la contrainte fill
d'un composant est BOTH
(remplit la zone d'affichage à la fois horizontalement et verticalement), la contrainte anchor
n'a pas d'effet car le composant remplit la totalité de la zone disponible. Pour que la contrainte anchor
ait un effet, attribuez à la contrainte fill
la valeur NONE
, HORIZONTAL
ou VERTICAL
.
Les valeurs d'ancrage possibles sont les suivantes :
NO (NORTHWEST) |
N (NORTH) |
NE (NORTHEAST) |
O (WEST) |
C (CENTER) |
E (EAST) |
SO (SOUTHWEST) |
S (SOUTH) |
SE (SOUTHEAST) |
Lorsque la zone d'affichage du composant est plus large que la taille nécessaire au composant, utilisez la contrainte fill
pour indiquer au gestionnaire de disposition si le composant doit être redimensionné, et si oui, comment. Comme la contrainte d'ancrage (anchor)
, la contrainte de remplissage (fill)
affecte uniquement le composant à l'intérieur de sa propre zone d'affichage. La contrainte de remplissage (fill)
indique au gestionnaire de disposition d'agrandir le composant pour qu'il remplisse toute la zone qui lui est attribuée.
Les valeurs de remplissage possibles sont les suivantes :
Aucune |
Ne modifie pas la taille du composant. |
Horizontal |
Modifie la taille du composant uniquement pour qu'il remplisse la zone horizontalement. |
Vertical |
Modifie la taille du composant uniquement pour qu'il remplisse la zone verticalement. |
Les deux |
Modifie la taille du composant horizontalement et verticalement pour qu'il remplisse toute la zone. |