Úvod do BoxLayout v Javě

BoxLayout je standardní správce rozložení, který je dodáván s platformou Java. Pomáhá při uspořádání součástí vodorovně nebo svisle uvnitř kontejneru. V tomto uspořádání bude uspořádání součástí jako takové, i když velikost rámu upravíme. Vertikální uspořádání zůstane vertikální, i když dojde ke změně velikosti rámu. Jinými slovy, komponenty uvnitř kontejneru se nezabalí. Na rozdíl od jiných správců rozvržení předává konstruktér BoxLayout požadované kontejnery konstruktérovi správce rozvržení. Konstruktory, metody a příklady třídy BoxLayout budou diskutovány v následujících částech.

Konstruktory BoxLayout v Javě

K implementaci třídy BoxLayout v Javě bude použit následující konstruktor:

  • veřejné BoxLayout (kontejner c, int osa)

Dva předané argumenty jsou kontejner a osa, které pomáhají při vytváření kontejneru s uvedenou osou. Dva platné směry jsou:

  1. Zleva doprava - BoxLayout.X_AXIS
  2. Shora dolů - BoxLayout.Y_AXIS

Pokud předáváme konstruktor jako BoxLayout.Y_AXIS, objeví se rozvržení jako na následujícím obrázku (jeden sloupec).

Pokud předáváme konstruktor jako BoxLayout.X_AXIS, objeví se rozvržení jako na následujícím obrázku (jeden řádek).

Metody třídy BoxLayout v Javě

Níže jsou uvedeny různé metody třídy boxlayout v java:

1. addLayoutComponent (Component comp, Object obj)

Účelem této metody je přidat zmíněnou komponentu do kontejneru pomocí zadaného objektu omezení.

Modifikátor a typ: odpadá

2. getLayoutAlignmentX (Contest contnr)

Tato metoda vrací zarovnání kontejneru zleva doprava. tj. osa X. Hodnota může být zadána mezi 0 a 1, kde 0 je zarovnání počátku, 1 je nejvzdálenější vyrovnání od počátku a 0, 5 je středové vyrovnání.

Modifikátor a typ: Float

3. getLayoutAlignmentY (Contest contnr)

Tato metoda vrací zarovnání kontejneru ve směru shora dolů. tj. osa Y. Hodnota může být zadána mezi 0 a 1, kde 0 je zarovnání počátku, 1 je nejvzdálenější vyrovnání od počátku a 0, 5 je středové vyrovnání.

Modifikátor a typ: Float

4. maximumLayoutSize (Contest contnr)

Tato metoda vrací maximální hodnotu velikosti, kterou může cílový kontejner použít k rozvržení kontejnerů, které jsou do něj přidány.

Modifikátor a typ: Float

5. minimumLayoutSize (Contest contnr)

Tato metoda vrací minimální hodnotu velikosti, kterou může cílový kontejner použít k rozvržení kontejnerů, které jsou do něj přidány.

Modifikátor a typ: Float

6. removeLayoutComponent (Component comp)

Tato metoda odstraní zmíněnou komponentu z rozvržení kontejneru.

7. layoutContainer (Container contnr)

Tato metoda stanoví rozvržení kontejneru, když je voláno soupravou abstraktních oken (AWT) .

8. invalidateLayout (Containercontnr)

Tato metoda zahodí informace o rozložení v mezipaměti. Jinými slovy zruší platnost rozvržení.

Příklady třídy BoxLayout v Javě

Nyní si ukážeme několik příkladů třídy BoxLayout s některými metodami vysvětlenými ve výše uvedené části.

Příklad 1: Java program pro vytvoření BoxLayout s X-Axis

//Java program to demonstrate BoxLayout with X Axis
import java.awt.*;
import javax.swing.*;
//A subclass BoxLayoutProgram that extends Frame Class
public class BoxLayoutProgram extends Frame (
Button buttons(); //Button reference variable
//Constructor of BoxLayoutProgram
public BoxLayoutProgram ()
(
buttons = new Button (5);
for (int i = 0;i<5;i++)
(
buttons(i) = new Button ("Box" + (i + 1));
add (buttons(i)); //adds button
)
setLayout (new BoxLayout (this, BoxLayout.X_AXIS)); //sets the layout by mentioning the axis
setSize(400, 400); //sets the width and height of the frame
setVisible(true); //sets the GUI visible to user
)
public static void main(String args())(
BoxLayoutProgram b=new BoxLayoutProgram(); //object of the class
)
)

Ukázkový výstup:

Zde bude vytvořená třída rozšířena ze třídy Frame, která je importována z java.awt. Poté se pomocí konstruktoru vytvoří rozvržení se zmíněným obsahem, šířkou a výškou.

Příklad 2: Program Java pro vytvoření BoxLayout s osou Y

//Java program to demonstrate BoxLayout with Y Axis
import java.awt.*;
import javax.swing.*;
//A subclass BoxLayoutProgram that extends Frame Class
public class BoxLayoutProgram extends Frame (
Button buttons(); //Button reference variable
//Constructor of BoxLayoutProgram
public BoxLayoutProgram ()
(
buttons = new Button (5);
for (int i = 0;i<5;i++)
(
buttons(i) = new Button ("Box" + (i + 1));
add (buttons(i)); //adds button
)
setLayout (new BoxLayout (this, BoxLayout.Y_AXIS)); //sets the layout by mentioning the axis
setSize(400, 400); //sets the width and height of the frame
setVisible(true); //sets the GUI visible to user
)
public static void main(String args())(
BoxLayoutProgram b=new BoxLayoutProgram(); //object of the class
)
)

Ukázkový výstup:

Výše uvedený program je podobný příkladu 1 s tou výjimkou, že se vytvářejí tlačítka v ose Y.

Příklad 3: Program Java, který vytváří tlačítka v ose X a Y

//Java program that creates buttons in both X axis and Y axis
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//Class that extends JFrame Class
public class BoxLayoutXY extends JFrame
(
//Constructor
public BoxLayoutXY()
(
//helps in adding the object to the container
Container cp = getContentPane();
//sets the layout of container as FlowLayout where the components are placed in a line
cp.setLayout(new FlowLayout());
//create an object of the box class
Box hbox = Box. createHorizontalBox ();
//create an object of the box class
Box vbox = Box. createVerticalBox ();
//add horizontal and vertical components to the container
hbox.add(new JButton("Horizontal Button 1"));
hbox.add(new JButton("Horizontal Button 2"));
hbox.add(new JButton("Horizontal Button 3"));
vbox.add(new JButton("Vertical Button 1"));
vbox.add(new JButton("Vertical Button 2"));
vbox.add(new JButton("Vertical Button 3"));
cp.add(hbox);
cp.add(vbox);
//method similar to setsize that places the content in preferred size
pack();
//GUI visible to user
setVisible(true);
)
public static void main(String args())
(
//calls the constructor of the class
new BoxLayoutXY();
)
)

Ukázkový výstup:

Na rozdíl od příkladů 1 a 2 tento program rozšiřuje třídu JFrame, aby implementoval BoxLayout. Používá se několik dalších metod, jako je pack (), createVerticalBox, které provádějí stejné úkoly jako v příkladech 1 a 2.

Závěr

BoxLayout je správce rozvržení, který pomáhá při uspořádání komponent kontejneru v zadaném formátu. tj. osa X a osa Y. Za účelem implementace bude použit konstruktor třídy, který obsahuje metody provádějící různé funkce.

Doporučené články

Toto byl průvodce BoxLayout v Javě. Zde diskutujeme konstruktory, metody a příklady boxlayoutu v Javě s kódy. Další informace naleznete také v dalších navrhovaných článcích -

  1. Rozložení v Javě
  2. Rozvržení mřížky v Javě
  3. Hromadné řazení v Javě
  4. Destruktor v Javě
  5. Haldy Seřadit v Pythonu
  6. Rozvržení HTML

Kategorie: