Introductie op GridBagLayout in Java

GridBagLayout is een van de meest complexe, krachtige en complexe lay-outmanager die Java biedt. GridBagLayout lijnt de componenten verticaal, horizontaal of langs de basislijn uit. De componenten kunnen van dezelfde breedte zijn of niet, afhankelijk van de vereiste. Ze onderhouden en beheren dynamische cellen waarbij het weergavegebied uit een of meer cellen bestaat. Deze componenten zijn gekoppeld aan de instantie van GridBagConstraints waarin de objecten van beperkingen helpen bij het ordenen van het weergavegebied van de componenten op het raster. GridBagLayout is van het pakket java.awt. Laten we de constructor, methoden en implementatie van GridBagLayout in de volgende secties bekijken.

Constructors van GridBagLayout in Java

Java.awt.GridBagLayout wordt gedeclareerd met de volgende syntaxis.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () is de constructor van GridBagLayout die helpt bij het maken van een lay-outmanager voor een gridbag. Eerst maken we het object voor de klasse GridBagLayout met behulp van een constructor zonder argument

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

Laten we enkele velden voor de klasse java.awt.GridBagLayout bekijken.

  • PREFERRED_SIZE

Het specificeert de gewenste rastergrootte van de component. Hier kan het ook de kloof zijn die moet worden gebruikt voor een bepaalde bereikwaarde.

  • DEFAULT_SIZE

Het specificeert de rastergrootte van de component. Hier kan het ook de kloof zijn die moet worden gebruikt voor een bepaalde bereikwaarde.

  • defaultConstraints

De instantie van gridbag-beperkingen die de standaardwaarden bevat, wordt hier bewaard.

  • layoutInfo

Gridbag's lay-outdetails houden dit vast.

  • rowWeights

Negeer de rijgewichten die hier worden vastgehouden.

  • MAXGRIDSIZE

Het helpt bij achterwaartse compatibiliteit.

  • rowHeights

Overschrijvingen worden tot de minimumhoogten van de rij gehouden.

Methoden van GridBagLayout in Java

Hier volgen de verschillende methoden van GridBagLayout die voor verschillende doeleinden kunnen worden gebruikt.

  • removeLayoutComponent (Component cmpn)

Uit de lay-out wordt het opgegeven onderdeel verwijderd.

  • addLayoutComponent (component cmpn, objectobjcons)

Het opgegeven object van de beperking wordt toegevoegd aan de lay-out van de opgegeven component.

  • getLayoutAlignmentY (Container cnt)

De uitlijning langs de y-as wordt geretourneerd.

  • addLayoutComponent (tekenreeksnaam, component cmpn)

Het opgegeven object van de beperking wordt aan de lay-out van de opgegeven component met een specifieke naam toegevoegd.

  • toString ()

Waarden in de indeling van de rasterzakken worden geretourneerd in de weergave van de tekenreeks.

  • getLayoutAlignmentX (Container cnt)

Uitlijning langs de x-as wordt geretourneerd.

  • getConstraints (component cmpn)

Door de component opgegeven beperkingen worden geretourneerd.

  • maximumLayoutSize (Container cnt)

Componenten in de container worden geretourneerd met de maximale afmetingen.

  • minimumLayoutSize (Container cntmin)

Onderdelen in de container worden geretourneerd met de minimale afmetingen.

  • preferredLayoutSize (Container cntpref)

Componenten in de container worden geretourneerd met de gewenste afmetingen.

  • arrangGrid (Container cnt)

Het helpt bij het ordenen van het raster.

  • adjustForGravity (GridBagConstraints cn, Rectangle rect)

Afhankelijk van de geometrie van beperkingen, past deze methode de velden breedte, x, hoogte en y aan de juiste waarden aan.

  • getLayoutDimensions ()

De breedte van de kolom en de hoogte van de rijen worden met deze methode bepaald.

  • getLayoutInfo (Container cnt, int sizeflag)

Het is verouderd en wordt gebruikt voor achterwaartse compatibiliteit.

  • getLayoutOrigin ()

Het bepaalt de oorsprong van het lay-outgebied, in de grafische coördinaatruimte van de doelcontainer.

  • getLayoutWeights ()

De gewichten van de kolom en de hoogte van de rijen worden met deze methode bepaald.

  • getMinSize (Container cnt, GridBagLayoutInfo inf)

Op basis van de gegevens van getLayoutInfo wordt de minimale grootte van de master geretourneerd.

  • invalidateLayout (Container cnt)

Als er informatie in de cache aanwezig is in de lay-outmanager, maakt deze de lay-out ongeldig.

  • layoutContainer (Container cnt)

De opgegeven container wordt ingedeeld met behulp van deze lay-out van de rasterzakken.

  • Punt locatie (int x, int y)

Deze methode identificeert de cel die het genoemde punt bevat met behulp van x en y.

  • lookupConstraints (Component cmp)

Beperkingen van de genoemde component worden opgehaald.

  • setConstraints (Component cmp, GridBagConstraints const)

Beperkingen van de genoemde component worden in de lay-out ingesteld.

Programma om GridBagLayout in Java te implementeren

Laten we nu de programma's bekijken om GridBagLayout in Java te implementeren.

Programma # 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);
)
)

Monster uitgang:

Hier wordt een GridBagLayout gemaakt met vijf knoppen zoals A, B, C, D en E. Verschillende methoden worden gebruikt voor het instellen van de grootte, titel, GUI zichtbaarheid, etc.

Programma # 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);
)
)

Monster uitgang:

Dit programma implementeert de GridBagLayout in een andere methode. Maar hier is de titel niet ingesteld en zijn er slechts 3 knoppen aanwezig.

Conclusie

GridBagLayout is een van de krachtige, flexibele en complexe lay-outbeheerders in Java die het java.awt-pakket wordt aangeboden. Het lijnt de componenten verticaal, horizontaal of langs de lijn uit. Syntaxis, constructor, methoden en implementatie van GridBagLayout worden in dit document uitgelegd.

Aanbevolen artikelen

Dit is een gids voor GridBagLayout in Java. Hier bespreken we de methoden en het programma om GridBagLayout in Java te implementeren. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Indeling in Java
  2. JDialog in Java
  3. Java-annotaties
  4. BorderLayout in Java
  5. Hulpmiddelen voor Java-implementatie
  6. JFrame in Java
  7. HTML-indeling