Úvod do GridBagLayout v Javě

GridBagLayout je jedním z nejsložitějších, nejvýkonnějších a nejsložitějších nástrojů pro správu rozložení Java. GridBagLayout zarovná komponenty vertikálně, horizontálně nebo podél základní linie. Komponenty mohou mít stejnou šířku nebo ne, podle požadavku. Udržují a spravují dynamické buňky, kde je oblast zobrazení tvořena jednou nebo více buňkami. Tyto komponenty jsou spojeny s instancí GridBagConstraints, ve které objekty omezení pomáhají při uspořádání oblasti zobrazení komponent v mřížce. GridBagLayout je z balíčku java.awt. Podívejme se na konstruktor, metody a implementaci GridBagLayout v následujících sekcích.

Konstruktory GridBagLayout v Javě

Java.awt.GridBagLayout je deklarována pomocí následující syntaxe.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () je konstruktér GridBagLayout, který pomáhá při vytváření správce rozložení pytlů mřížky. Nejprve vytvoříme objekt pro třídu GridBagLayout pomocí konstruktoru bez argumentů

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

Podívejme se na některá pole pro třídu java.awt.GridBagLayout.

  • PREFERRED_SIZE

Určuje preferovanou velikost mřížky z komponenty. Zde může být také použita mezera pro určitou hodnotu rozsahu.

  • DEFAULT_SIZE

Určuje velikost mřížky z komponenty. Zde může být také použita mezera pro určitou hodnotu rozsahu.

  • defaultConstraints

Zde se drží instance omezení gridbag, která obsahuje výchozí hodnoty.

  • layoutInfo

Podrobnosti o rozvržení Gridbagu to drží.

  • rowWeights

Zde jsou potlačeny váhy závaží.

  • MAXGRIDSIZE

Pomáhá při zpětné kompatibilitě.

  • rowHeights

Přepisy jsou udržovány na minimálních výškách řady.

Metody GridBagLayout v Javě

Následuje několik metod GridBagLayout, které lze použít pro různé účely.

  • removeLayoutComponent (Component cmpn)

Z rozložení je zadaná součást odstraněna.

  • addLayoutComponent (Component cmpn, Object objcons)

Zadaný objekt omezení se přidá do rozvržení určené komponenty.

  • getLayoutAlignmentY (Container cnt)

Zarovnání podél osy y je vráceno.

  • addLayoutComponent (String name, Component cmpn)

Zadaný objekt omezení se přidá do rozvržení určené komponenty se specifickým názvem.

  • toString ()

Hodnoty v rozvržení pytle mřížky jsou vráceny v reprezentaci řetězce.

  • getLayoutAlignmentX (Container cnt)

Zarovnání podél osy x je vráceno.

  • getConstraints (Component cmpn)

Vrácená omezení komponenty jsou vrácena.

  • maximumLayoutSize (Container cnt)

Komponenty v kontejneru se vracejí s maximálními rozměry.

  • minimumLayoutSize (Container cntmin)

Součásti v kontejneru se vracejí s minimálními rozměry.

  • upřednostňovaná velikost velikosti (Container cntpref)

Komponenty v kontejneru jsou vráceny s preferovanými rozměry.

  • aranžmáGrid (Container cnt)

Pomáhá při uspořádání mřížky.

  • adjustForGravity (GridBagConstraints cn, Rectangle rect)

V závislosti na geometrii vazeb upraví tato metoda pole šířky, x, výšky a y na správné hodnoty.

  • getLayoutDimensions ()

Pomocí této metody se určuje šířka sloupce a výška řádků.

  • getLayoutInfo (Container cnt, int sizeflag)

Je zastaralý a používá se pro zpětnou kompatibilitu.

  • getLayoutOrigin ()

Určuje počátek oblasti rozvržení v grafickém souřadném prostoru cílového kontejneru.

  • getLayoutWeights ()

Pomocí této metody se určí hmotnost sloupce a výška řádků.

  • getMinSize (Container cnt, GridBagLayoutInfo inf)

Na základě podrobností získaných z getLayoutInfo se vrací minimální velikost masteru.

  • invalidateLayout (Container cnt)

Pokud jsou ve správci rozložení přítomny některé informace v mezipaměti, zruší platnost rozvržení.

  • layoutContainer (Container cnt)

Zadaný kontejner bude rozložen pomocí tohoto rozvržení sáčku.

  • Umístění bodu (int x, int y)

Tato metoda identifikuje buňku, která obsahuje uvedený bod, pomocí xay.

  • lookupConstraints (Component cmp)

Jsou načtena omezení uvedené komponenty.

  • setConstraints (Component cmp, GridBagConstraints const)

Omezení uvedené komponenty se nastavují v rozvržení.

Program implementovat GridBagLayout v Javě

Nyní se podívejme na programy implementující GridBagLayout v Javě.

Program č. 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);
)
)

Ukázkový výstup:

Zde se vytvoří GridBagLayout s pěti tlačítky jako A, B, C, D a E. Pro nastavení velikosti, názvu, viditelnosti GUI atd. Se používá několik metod.

Program č. 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);
)
)

Ukázkový výstup:

Tento program implementuje GridBagLayout v jiné metodě. Zde však není nastaven název a jsou k dispozici pouze 3 tlačítka.

Závěr

GridBagLayout je jedním z výkonných, flexibilních a složitých manažerů rozložení v Javě, který je nabízen balíček java.awt. Zarovná komponenty vertikálně, horizontálně nebo podél linie. V tomto dokumentu jsou vysvětleny syntaxe, konstruktor, metody a implementace GridBagLayout.

Doporučené články

Toto je průvodce po GridBagLayout v Javě. Zde diskutujeme metody a program implementace GridBagLayout v Javě. Další informace naleznete také v následujících článcích -

  1. Rozložení v Javě
  2. JDialog v Javě
  3. Poznámky jazyka Java
  4. BorderLayout v Javě
  5. Java Deployment Tools
  6. JFrame v Javě
  7. Rozvržení HTML

Kategorie: