Nargonath | Bonjour,
Tout d'abord, je suis en train de développer des JPanels avec un GridBagLayout. Je rencontre un problème au niveau de la disposition de mes cellules. J'ai compilé mon code étape par étape, et le problème provient de l'instruction que j'attribue à deux JLabels :
gridwidth = GridBagConstraints.REMAINDER;
En effet, voici le résultat que je désire et que j'obtiens en laissant la propriété à sa valeur par défaut :
http://uppix.net/7/5/0/ee8fd1a504f [...] 9b7987.jpg
Les traits de tableaux correspondent à la représentation de la grille virtuelle du GridBagLayout, ils sont juste là à titre représentatif.
Et voici ce que j'obtiens en passant la propriété des deux JLabels ( "Add SlowControl" et "Informations" ) à GridBagConstraints.REMAINDER :
http://uppix.net/7/c/e/b87c6ba383a [...] e2bc51.jpg
Je ne comprends pas pourquoi le fait de mettre cette valeur à la propriété écrase les cellules vides et donc me fait perdre l'indentation des JLabels recherchée. Si quelqu'un à une réponse à mon problème je suis tout ouï !
Voici le code qui correspond à mon problème (les deux JLables en question sont lblAdd et lblInfoAdd) : Je ne sais pas si c'est ces balises là qu'il fallait utiliser pour le code ...
Code :
- // set preffered size and minimum size for all txt and but component
- this.cmbRunNameAdd.setPreferredSize(cmbRunNameAdd.getPreferredSize());
- this.cmbRunNameAdd.setMinimumSize(new Dimension(100, 20));
- this.txtDateAcqAdd.setPreferredSize(this.cmbRunNameAdd.getPreferredSize());
- this.txtDateAcqAdd.setMinimumSize(this.cmbRunNameAdd.getMinimumSize());
- this.txtNameAdd.setPreferredSize(this.cmbRunNameAdd.getPreferredSize());
- this.txtNameAdd.setMinimumSize(this.cmbRunNameAdd.getMinimumSize());
- this.txtPathAdd.setPreferredSize(this.cmbRunNameAdd.getPreferredSize());
- this.txtPathAdd.setMinimumSize(this.cmbRunNameAdd.getMinimumSize());
- // set constraints for lblAdd
- constraints(this.lblAdd, 0, 0, GridBagConstraints.REMAINDER, 1, GridBagConstraints.NONE,
- new Insets(10,15,0,0), GridBagConstraints.LINE_START, 0, 0);
- // set constraints for lblInfoAdd
- constraints(this.lblInfoAdd, 1, 1, GridBagConstraints.REMAINDER, 1, GridBagConstraints.NONE,
- new Insets(10,15,0,0), GridBagConstraints.LINE_START, 0, 0);
- // set constraints for lblNameAdd
- constraints(this.lblNameAdd, 2, 2, 1, 1, GridBagConstraints.NONE, new Insets(10,15,0,0),
- GridBagConstraints.LINE_START, 0, 0);
- // set constraints for txtNameAdd
- // we use the GridBagContraints.RELATIVE property to set gridx. It means that gridx take
- // care about the previous gridx element position. It will be incremented.
- constraints(this.txtNameAdd, GridBagConstraints.RELATIVE, 2, 1, 1,
- GridBagConstraints.HORIZONTAL, new Insets(10,5,0,0), GridBagConstraints.BASELINE,
- 0, 0);
- // set constraints for lblPathAdd
- // we have to disable the fill option
- constraints(this.lblPathAdd, GridBagConstraints.RELATIVE, 2, 1, 1,
- GridBagConstraints.NONE, new Insets(10,10,0,0), GridBagConstraints.BASELINE_LEADING,
- 0, 0);
- // set constraints for txtPathAdd
- constraints(this.txtPathAdd, GridBagConstraints.RELATIVE, 2, 1, 1,
- GridBagConstraints.HORIZONTAL, new Insets(10,5,0,0), GridBagConstraints.BASELINE,
- 0, 0);
- // set constraints for lblRunNameAdd
- constraints(this.lblRunNameAdd, 2, 3, 1, 1,
- GridBagConstraints.NONE, new Insets(10,15,0,0), GridBagConstraints.BASELINE_LEADING,
- 0, 0);
- // set constraints for cmbRunNameAdd
- constraints(this.cmbRunNameAdd, GridBagConstraints.RELATIVE, 3, 1, 1,
- GridBagConstraints.HORIZONTAL, new Insets(10,5,0,0), GridBagConstraints.BASELINE,
- 0, 0);
- // set constraints for lblDateAcqAdd
- constraints(this.lblDateAcqAdd, GridBagConstraints.RELATIVE, 3, 1, 1,
- GridBagConstraints.NONE, new Insets(10,10,0,0), GridBagConstraints.BASELINE_LEADING,
- 0, 0);
- // set constraints for txtDateAcqAdd
- constraints(this.txtDateAcqAdd, GridBagConstraints.RELATIVE, 3, 1, 1,
- GridBagConstraints.HORIZONTAL, new Insets(10,5,0,0), GridBagConstraints.BASELINE,
- 0, 0);
-
- }
- /**
- * Add a component to the GridBagLayout with all constraints given into parameters
- * @param object
- * @param gridx
- * @param gridy
- * @param gridwidth
- * @param gridheight
- * @param fill
- * @param insets
- * @param anchor
- * @param weightx
- * @param weighty
- */
- private void constraints(Component object, int gridx, int gridy,
- int gridwidth, int gridheight, int fill, Insets insets, int anchor, double weightx,
- double weighty) {
- gbc.gridx = gridx;
- gbc.gridy = gridy;
- gbc.gridwidth = gridwidth;
- gbc.gridheight = gridheight;
- gbc.fill = fill;
- gbc.insets = insets;
- gbc.anchor = anchor;
- gbc.weightx = weightx;
- gbc.weighty = weighty;
- this.add(object, gbc);
- }
|
|