Introduzione su GridBagLayout in Java

GridBagLayout è una delle più complesse, potenti e complesse offerte di layout manager Java. GridBagLayout allinea i componenti verticalmente, orizzontalmente o lungo la linea di base. I componenti possono avere la stessa larghezza o meno, in base al requisito. Mantengono e gestiscono celle dinamiche in cui l'area di visualizzazione è composta da una o più celle. Questi componenti sono associati all'istanza di GridBagConstraints in cui gli oggetti dei vincoli aiutano a disporre l'area di visualizzazione dei componenti sulla griglia. GridBagLayout è del pacchetto java.awt. Vediamo il costruttore, i metodi e l'implementazione di GridBagLayout nelle seguenti sezioni.

Costruttori di GridBagLayout in Java

Java.awt.GridBagLayout è dichiarato utilizzando la sintassi seguente.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () è il costruttore di GridBagLayout che aiuta a creare un gestore di layout a griglia. Innanzitutto, creiamo l'oggetto per la classe GridBagLayout con l'aiuto di un costruttore senza argomenti

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

Vediamo alcuni dei campi per la classe java.awt.GridBagLayout.

  • PREFERRED_SIZE

Specifica la dimensione della griglia preferita dal componente. Qui, può anche essere il divario che deve essere utilizzato per un determinato valore di intervallo.

  • DEFAULT_SIZE

Specifica la dimensione della griglia dal componente. Qui, può anche essere il divario che deve essere utilizzato per un determinato valore di intervallo.

  • defaultConstraints

Qui viene mantenuta l'istanza dei vincoli della griglia che contiene i valori predefiniti.

  • layoutInfo

I dettagli del layout di Gridbag sono contenuti in questo.

  • rowWeights

Sovrascrivi alla riga i pesi si tengono qui.

  • MAXGRIDSIZE

Aiuta a retrocompatibilità.

  • rowHeights

Le sostituzioni vengono mantenute alle altezze minime della riga.

Metodi di GridBagLayout in Java

Di seguito sono riportati i diversi metodi di GridBagLayout che possono essere utilizzati per scopi diversi.

  • removeLayoutComponent (Component cmpn)

Dal layout, il componente specificato viene rimosso.

  • addLayoutComponent (Component cmpn, Object objcons)

L'oggetto specificato del vincolo viene aggiunto al layout del componente specificato.

  • getLayoutAlignmentY (Contenitore cnt)

Viene restituito l'allineamento lungo l'asse y.

  • addLayoutComponent (nome stringa, cmpn componente)

L'oggetto specificato del vincolo viene aggiunto al layout del componente specificato con un nome specifico.

  • accordare()

I valori nel layout della griglia sono restituiti nella rappresentazione della stringa.

  • getLayoutAlignmentX (Container cnt)

Viene restituito l'allineamento lungo l'asse x.

  • getConstraints (Component cmpn)

Vengono restituiti i vincoli specificati del componente.

  • maximumLayoutSize (Container cnt)

I componenti nel contenitore vengono restituiti con le dimensioni massime.

  • minimumLayoutSize (Container cntmin)

I componenti nel contenitore vengono restituiti con le dimensioni minime.

  • favoriteLayoutSize (Container cntpref)

I componenti nel contenitore vengono restituiti con le dimensioni preferite.

  • organizzareGrid (Contenitore cnt)

Aiuta a organizzare la griglia.

  • AdjustForGravity (GridBagConstraints cn, Rectangle rect)

A seconda della geometria dei vincoli, questo metodo regola i campi larghezza, x, altezza e y sui valori corretti.

  • getLayoutDimensions ()

La larghezza della colonna e l'altezza delle righe sono determinate usando questo metodo.

  • getLayoutInfo (Container cnt, int sizeflag)

È obsoleto e utilizzato per la compatibilità con le versioni precedenti.

  • getLayoutOrigin ()

Determina l'origine dell'area di layout, nello spazio delle coordinate grafiche del contenitore di destinazione.

  • getLayoutWeights ()

I pesi della colonna e l'altezza delle file sono determinati usando questo metodo.

  • getMinSize (Container cnt, GridBagLayoutInfo inf)

Sulla base dei dettagli ottenuti da getLayoutInfo, viene restituita la dimensione minima del master.

  • invalidateLayout (Container cnt)

Se nel gestore del layout sono presenti alcune informazioni memorizzate nella cache, il layout viene invalidato.

  • layoutContainer (Container cnt)

Il contenitore specificato verrà disposto utilizzando questo layout a griglia.

  • Posizione del punto (int x, int y)

Questo metodo identifica la cella che contiene il punto menzionato usando xey.

  • lookupConstraints (Component cmp)

I vincoli del componente menzionato vengono recuperati.

  • setConstraints (Component cmp, GridBagConstraints const)

I vincoli del componente citato sono impostati nel layout.

Programma per implementare GridBagLayout in Java

Ora, vediamo i programmi per implementare GridBagLayout in Java.

Programma n. 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);
)
)

Uscita campione:

Qui, viene creato un GridBagLayout con cinque pulsanti come A, B, C, D ed E. Vengono utilizzati diversi metodi per impostare dimensioni, titolo, visibilità della GUI, ecc.

Programma n. 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);
)
)

Uscita campione:

Questo programma implementa GridBagLayout in un altro metodo. Ma qui il titolo non è impostato e sono presenti solo 3 pulsanti.

Conclusione

GridBagLayout è uno dei gestori di layout potenti, flessibili e complessi in Java che offre il pacchetto java.awt. Allinea i componenti verticalmente, orizzontalmente o lungo la linea. Sintassi, costruttore, metodi e implementazione di GridBagLayout sono spiegati in questo documento.

Articoli consigliati

Questa è una guida a GridBagLayout in Java. Qui discutiamo i metodi e il programma per implementare GridBagLayout in Java. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Layout in Java
  2. JDialog in Java
  3. Annotazioni Java
  4. BorderLayout in Java
  5. Strumenti di distribuzione Java
  6. JFrame in Java
  7. Layout HTML

Categoria: