Ú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:
- Zleva doprava - BoxLayout.X_AXIS
- 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 -
- Rozložení v Javě
- Rozvržení mřížky v Javě
- Hromadné řazení v Javě
- Destruktor v Javě
- Haldy Seřadit v Pythonu
- Rozvržení HTML