Introduction sur GridBagLayout en Java

GridBagLayout est l'une des offres Java de gestionnaire de mise en page les plus complexes, les plus puissantes et les plus complexes. GridBagLayout aligne les composants verticalement, horizontalement ou le long de la ligne de base. Les composants peuvent être de la même largeur ou non, en fonction de l'exigence. Ils maintiennent et gèrent des cellules dynamiques où la zone d'affichage est composée d'une ou plusieurs cellules. Ces composants sont associés à l'instance de GridBagConstraints dans laquelle les objets de contraintes aident à organiser la zone d'affichage des composants sur la grille. GridBagLayout est du package java.awt. Voyons le constructeur, les méthodes et l'implémentation de GridBagLayout dans les sections suivantes.

Constructeurs de GridBagLayout en Java

Java.awt.GridBagLayout est déclaré à l'aide de la syntaxe suivante.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () est le constructeur de GridBagLayout qui aide à créer un gestionnaire de disposition de sac de grille. Tout d'abord, nous créons l'objet pour la classe GridBagLayout à l'aide d'un constructeur sans argument

GridBagLayout obj = new GridBagLayout();
setLayout(obj);

Voyons quelques-uns des champs de la classe java.awt.GridBagLayout.

  • PREFERRED_SIZE

Il spécifie la taille de grille préférée du composant. Ici, il peut également s'agir de l'écart à utiliser pour une valeur de plage particulière.

  • DEFAULT_SIZE

Il spécifie la taille de la grille du composant. Ici, il peut également s'agir de l'écart à utiliser pour une valeur de plage particulière.

  • defaultConstraints

L'instance de contraintes gridbag qui contient les valeurs par défaut est conservée ici.

  • layoutInfo

Les détails de la disposition de Gridbag tiennent dans cela.

  • rowWeights

Remplacer par les poids de ligne retenus ici.

  • MAXGRIDSIZE

Il aide à la compatibilité descendante.

  • rowHeights

Les remplacements sont maintenus aux hauteurs minimales de ligne.

Méthodes de GridBagLayout en Java

Voici les différentes méthodes de GridBagLayout qui peuvent être utilisées à différentes fins.

  • removeLayoutComponent (Composant cmpn)

De la présentation, le composant spécifié est supprimé.

  • addLayoutComponent (Component cmpn, Object objcons)

L'objet spécifié de la contrainte est ajouté à la présentation du composant spécifié.

  • getLayoutAlignmentY (Container cnt)

L'alignement le long de l'axe y est renvoyé.

  • addLayoutComponent (nom de chaîne, composant cmpn)

L'objet spécifié de la contrainte est ajouté à la présentation du composant spécifié avec un nom spécifique.

  • toString ()

Les valeurs de la disposition du sac de grille sont renvoyées dans la représentation de la chaîne.

  • getLayoutAlignmentX (Container cnt)

L'alignement le long de l'axe des x est renvoyé.

  • getConstraints (composant cmpn)

Les contraintes spécifiées du composant sont retournées.

  • maximumLayoutSize (conteneur cnt)

Les composants dans le conteneur sont retournés avec les dimensions maximales.

  • minimumLayoutSize (Container cntmin)

Les composants dans le conteneur sont retournés avec les dimensions minimales.

  • PreferredLayoutSize (Conteneur cntpref)

Les composants dans le conteneur sont retournés avec les dimensions préférées.

  • arrangeGrid (Container cnt)

Il aide à organiser la grille.

  • adjustForGravity (GridBagConstraints cn, Rectangle rect)

Selon la géométrie des contraintes, cette méthode ajuste les champs largeur, x, hauteur et y aux bonnes valeurs.

  • getLayoutDimensions ()

La largeur de la colonne et la hauteur des lignes sont déterminées à l'aide de cette méthode.

  • getLayoutInfo (conteneur cnt, int sizeflag)

Il est obsolète et utilisé pour la compatibilité descendante.

  • getLayoutOrigin ()

Il détermine l'origine de la zone de mise en page, dans l'espace de coordonnées graphiques du conteneur cible.

  • getLayoutWeights ()

Les poids de la colonne et la hauteur des lignes sont déterminés à l'aide de cette méthode.

  • getMinSize (Container cnt, GridBagLayoutInfo inf)

Sur la base des détails obtenus à partir de getLayoutInfo, la taille minimale du maître est renvoyée.

  • invalidateLayout (Container cnt)

Si certaines informations mises en cache sont présentes dans le gestionnaire de disposition, cela invalide la disposition.

  • layoutContainer (Container cnt)

Le conteneur spécifié sera disposé en utilisant cette disposition de sac de grille.

  • Emplacement du point (int x, int y)

Cette méthode identifie la cellule qui contient le point mentionné en utilisant x et y.

  • lookupConstraints (Component cmp)

Les contraintes du composant mentionné sont récupérées.

  • setConstraints (Component cmp, GridBagConstraints const)

Les contraintes du composant mentionné sont définies dans la présentation.

Programme pour implémenter GridBagLayout en Java

Voyons maintenant les programmes pour implémenter GridBagLayout en Java.

Programme # 1

// Java program to implement GridBagLayout layout manager
//import the packages needed
import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.*;
//GridExample class extends JFrame
public class GridExample extends JFrame(
//main method
public static void main(String() args) (
//object of the class GridExample
GridExample ge = new GridExample();
)
//constructor of class GridExample
public GridExample() (
// Object of GridBagLayout
GridBagLayout gl = new GridBagLayout();
// Object of GridBagConstraints
GridBagConstraints gc = new GridBagConstraints();
// GridBagLayout is set
setLayout(gl);
// Method to set JFrame Title.
setTitle("Example for GridBag Layout ");
GridBagLayout ll = new GridBagLayout();
this.setLayout(ll);
//components in horizontal
gc.fill = GridBagConstraints.HORIZONTAL;
//left most row and top most column
gc.gridx = 0;
gc.gridy = 0;
//Button A added
this.add(new Button("Button A"), gc);
gc.gridx = 1;
gc.gridy = 0;
//Button B added
this.add(new Button("Button B"), gc);
gc.fill = GridBagConstraints.HORIZONTAL;
//increase component height by 20 pixels
gc.ipady = 20;
gc.gridx = 0;
gc.gridy = 1;
//Button C added
this.add(new Button("Button C"), gc);
gc.gridx = 1;
gc.gridy = 1;
///Button D added
this.add(new Button("Button D"), gc);
gc.gridx = 0;
gc.gridy = 2;
gc.fill = GridBagConstraints.HORIZONTAL;
gc.gridwidth = 2;
//Button E added
this.add(new Button("Button E"), gc);
// set the size
setSize(200, 300);
setPreferredSize(getSize());
//GUI visible to user
setVisible(true);
//exit on clicking close button
setDefaultCloseOperation(EXIT_ON_CLOSE);
)
)

Exemple de sortie:

Ici, un GridBagLayout avec cinq boutons tels que A, B, C, D et E est créé. Plusieurs méthodes sont utilisées pour définir la taille, le titre, la visibilité de l'interface graphique, etc.

Programme # 2

//Java program to implement GridBagLayout
import java.awt.*;
import javax.swing.*;
public class GridExample (
//main method
public static void main(String() args) (
//object of JFrame
JFrame jf = new JFrame();
//exit on clicking close button
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//object of container
Container cn = jf.getContentPane();
//set layout
cn.setLayout(new GridBagLayout());
//object of constraints
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy = GridBagConstraints.RELATIVE;
cn.add(new JButton("Button A"));
cn.add(new JButton("Button B"));
gc.fill = GridBagConstraints.HORIZONTAL;
cn.add(new JButton("Button c"));
// set the size
jf.setSize(400, 300);
//GUI visible to user
jf.setVisible(true);
)
)

Exemple de sortie:

Ce programme implémente le GridBagLayout dans une autre méthode. Mais ici, le titre n'est pas défini et seuls 3 boutons sont présents.

Conclusion

GridBagLayout est l'un des gestionnaires de mise en page puissants, flexibles et complexes en Java auquel est proposé le package java.awt. Il aligne les composants verticalement, horizontalement ou le long de la ligne. La syntaxe, le constructeur, les méthodes et l'implémentation de GridBagLayout sont expliqués dans ce document.

Articles recommandés

Ceci est un guide de GridBagLayout en Java. Nous discutons ici des méthodes et du programme pour implémenter GridBagLayout en Java. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Disposition en Java
  2. JDialog en Java
  3. Annotations Java
  4. BorderLayout en Java
  5. Outils de déploiement Java
  6. JFrame en Java
  7. Disposition HTML