Bevezetés a GroupLayout alkalmazásba a Java-ban

A Java alkalmazásban a GroupLayout alkalmazásban az Elrendezéskezelők olyanok, mint a Java-összetevők különféle „Word-csomagolása”. Ugyanúgy, ahogyan a „Word Wrap” szolgáltatás a szöveg karaktereit a szövegsorkezelő következő sorára helyezi, az elrendezéskezelők a „Swing Component” -et a JFrame vagy a JApplet látható területe körül körözik. Az elrendezéskezelők az AWT csomagból származnak. A GroupLayout manager egy LayoutManager, amely az összetevőket csoportosítja és elrendezi JFrame vagy JApplet formátumban. Grafikus felhasználói felület fejlesztésére szolgál.

Az összetevők esetében a GroupLayout kétféle elrendezést használ:

  • Szekvenciális elrendezés: Ebben az elrendezésben az alkatrészek egymás után vannak egymás után elrendezve.
  • Párhuzamos elrendezés: Ebben az elrendezésben az alkatrészek párhuzamosan vannak elhelyezve ugyanabban a helyen.

Ha egymásba ágyazzák egymást, ez a két elrendezés erősebbé válik, amelyre a GroupLayout definiálja az elrendezési csoportokat. A csoport lehet párhuzamos vagy egymást követő, és tartalmazhat komponenseket, más csoportokat és réseket.

  • Szekvenciális csoport mérete: A tartályban lévő összes összetevő méretének összege.
  • Párhuzamos csoport mérete : A tartály legnagyobb összetevőjének mérete.

A GroupLayout osztály kivitelezője Java-ban

Az alábbiakban bemutatjuk a grouplayout osztály kivitelezőjét:

GroupLayout (Container Host): A megadott Container számára létrehoz egy GroupLayout-t.

Példa:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel grpPanel = new JPanel();
GroupLayout grpLayout = new GroupLayout(grpPanel);
)

Elrendezés meghatározása: Az összetevők elrendezése a JFrame vagy a JApplet belsejében egymást követő és párhuzamos csoportok kombinálásával.

Példák a GroupLayout végrehajtására Java-ban

Az alábbiakban bemutatjuk a GroupLayout Java alkalmazásba vételének különböző példáit:

1. példa

Kezdjük egy egyszerű példával, amelynek két összetevője van egymás után.

Ezt az elrendezést csoportok segítségével írjuk le. A vízszintes tengelytől kezdve két összetevőből álló sorozatcsoportot indítunk balról jobbra. A függőleges tengelytől kezdve egy azonos helyzetű két elem párhuzamos csoportja.

Kód:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel panel = new JPanel();
JButton BFirst = new JButton("First");
JButton BSecond = new JButton("Second");
GroupLayout gl = new GroupLayout(panel);
public GroupLayoutExample() (
panel.setLayout(gl);
SetButton(BFirst, 100, 30);
SetButton(BSecond, 100, 30);
SetLayout();
Build();
)
public void SetButton(JButton button, int width, int height) (
button.setMinimumSize(new Dimension(width, height));
)
public void SetLayout() (
gl.setHorizontalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addComponent(BSecond));
gl.setVerticalGroup(gl.createParallelGroup()
.addComponent(BFirst)
.addComponent(BSecond));
)
public void Build() (
setContentPane(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("GroupLayout Example");
setVisible(true);
)
public static void main(String() args) (
new GroupLayoutExample();
)
)

Kimenet:

2. példa

Tegyük fel, hogy két alkotóeleme van:

Ezt az elrendezést csoportok segítségével írjuk le. A vízszintes tengelytől kezdve két összetevőből álló sorozatcsoportot indítunk balról jobbra. A függőleges tengelytől kezdve két összetevőből álló sorozatot, balról jobbra.

Kód:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel panel = new JPanel();
JButton BFirst = new JButton("First");
JButton BSecond = new JButton("Second");
GroupLayout gl = new GroupLayout(panel);
public GroupLayoutExample() (
panel.setLayout(gl);
SetButton(BFirst, 100, 30);
SetButton(BSecond, 100, 30);
SetLayout();
Build();
)
public void SetButton(JButton button, int width, int height) (
button.setMinimumSize(new Dimension(width, height));
)
public void SetLayout() (
gl.setHorizontalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addComponent(BSecond));
gl.setVerticalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addComponent(BSecond));
)
public void Build() (
setContentPane(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("GroupLayout Example");
setVisible(true);
)
public static void main(String() args) (
new GroupLayoutExample();
)
)

Kimenet:

3. példa

A szakadék olyan, mint egy bizonyos méretű láthatatlan elem.

Gyakran használják az alkatrészek közötti távolság vagy a konténer határától való távolság ellenőrzésére. Ezenkívül meghatározza az automatikus réseket a szomszédos elemek közötti előnyös távolságokként. Háromféle rést használ az alkotóelemek vagy alkotóelemek és a szegélyek között: KAPCSOLATOS, NEM KAPCSOLATOS és BEJEGYZETT. Valami kizárólag a szekvenciális csoportok számára a hiányosságok. A rések elválasztják az összetevőket a megjelölt képpontok száma alapján. Most adunk egy vízszintes rést 20 és egy függőleges rést 30.

Kód:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel panel = new JPanel();
JButton BFirst = new JButton("First");
JButton BSecond = new JButton("Second");
GroupLayout gl = new GroupLayout(panel);
public GroupLayoutExample() (
panel.setLayout(gl);
SetButton(BFirst, 100, 30);
SetButton(BSecond, 100, 30);
SetLayout();
Build();
)
public void SetButton(JButton button, int width, int height) (
button.setMinimumSize(new Dimension(width, height));
)
public void SetLayout() (
gl.setHorizontalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addGap(20)
.addComponent(BSecond));
gl.setVerticalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addGap(30)
.addComponent(BSecond));
)
public void Build() (
setContentPane(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("GroupLayout Example");
setVisible(true);
)
public static void main(String() args) (
new GroupLayoutExample();
)
)

Kimenet:

4. példa

De mi van, ha hiányosságot akarunk egy párhuzamos csoportban?

A hiányosságok azonban nem használhatók párhuzamos csoportokban. Tehát egy eltérő módszert használnak a rés létrehozására. Párhuzamos és egymást követő csoportok kombinációját használja. Egy párhuzamos csoporttal és az első komponenssel kezdődik. Ezután van egy szekvenciális csoport a párhuzamos csoporton belül. És hozzáad egy rést ebben a szekvenciális csoportban, és végül hozzáadja a második komponenst. A függőleges csoportok mindkét komponenst egymást követő módon tartalmazzák.

Kód:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel panel = new JPanel();
JButton BFirst = new JButton("First");
JButton BSecond = new JButton("Second");
GroupLayout gl = new GroupLayout(panel);
public GroupLayoutExample() (
panel.setLayout(gl);
SetButton(BFirst, 100, 30);
SetButton(BSecond, 100, 30);
SetLayout();
Build();
)
public void SetButton(JButton button, int width, int height) (
button.setMinimumSize(new Dimension(width, height));
)
public void SetLayout() (
gl.setHorizontalGroup(gl.createParallelGroup()
.addComponent(BFirst)
.addGroup(gl.createSequentialGroup()
.addGap((int)(BFirst.getMinimumSize().getWidth()/2))
.addComponent(BSecond))
);
gl.setVerticalGroup(gl.createSequentialGroup()
.addComponent(BFirst)
.addComponent(BSecond));
)
public void Build() (
setContentPane(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("GroupLayout Example");
setVisible(true);
)
public static void main(String() args) (
new GroupLayoutExample();
)
)

Kimenet:

5. példa

Most összeállítási elrendezéseket készítünk.

El kell készíteni egy rácsos elrendezést és a JPanel-et az elrendezés támogatásához, és négy gombot (2, 2) mintában kell beállítanunk. Először egy párhuzamos csoporttal kezdjük a vízszintes csoportban, amelyet a rácsos elrendezési panel hozzáadása követ. És a szekvenciális csoport a párhuzamos csoportban, és a két gomb hozzáadása egymás utáni sorrendben vízszintesen. Ezután a függőleges csoportban egy sorozattal kezdődik. Ezután hozzáadjuk a JPanel rácsos elrendezést. Ezután jön egy párhuzamos csoport a két gombhoz. És végül, a kész építkezési módszer.

Kód:

import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel grpPanel = new JPanel(), grdPanel = new JPanel();
JButton BFirst = new JButton("First"), BSecond = new JButton("Second"), BGrid() = new JButton(4);
GroupLayout grpLayout = new GroupLayout(grpPanel);
GridLayout grdLayout = new GridLayout(2, 2);
public GroupLayoutExample() (
grpPanel.setLayout(grpLayout);
SetButton(BFirst, 100, 30);
SetButton(BSecond, 100, 30);
SetLayout();
Build();
)
public void SetButton(JButton button, int width, int height) (
button.setMinimumSize(new Dimension(width, height));
)
public void SetLayout() (
for(int i=0; i<4; i++) (
BGrid(i) = new JButton(String.valueOf(i+1));
grdPanel.add(BGrid(i));
)
grdPanel.setLayout(grdLayout);
grpLayout.setHorizontalGroup(grpLayout.createParallelGroup()
.addComponent(grdPanel)
.addGroup(grpLayout.createSequentialGroup()
.addComponent(BFirst)
.addComponent(BSecond))
);
grpLayout.setVerticalGroup(grpLayout.createSequentialGroup()
.addGroup(grpLayout.createParallelGroup()
.addComponent(BFirst)
.addComponent(BSecond))
.addComponent(grdPanel)
);
)
public void Build() (
setContentPane(grpPanel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("GroupLayout Example");
setVisible(true);
)
public static void main(String() args) (
new GroupLayoutExample();
)
)

Kimenet:

Következtetés

A GroupLayout akkor hasznos, ha összetevőit hierarchikusan csoportosítani szeretné egy tárolóba. A cikkben alkalmazott néhány hasznos módszer:

  1. Java GroupLayout .createParallelGroup (): Párhuzamos csoportot hoz létre és ad vissza.
  2. Java GroupLayout .createSequentialGroup (): létrehoz egy SequentialGroup-ot és visszaadja azt.

Ajánlott cikkek

Ez egy útmutató a GroupLayout használatához Java-ban. Itt öt különféle példán keresztül tárgyaljuk a csoportos kiállítási osztály kivitelezőjét. Megnézheti más kapcsolódó cikkeket is, ha többet szeretne megtudni -

  1. BorderLayout Java-ban
  2. BoxLayout Java-ban
  3. Rácselrendezés Java-ban
  4. CardLayout Java-ban
  5. HTML elrendezés

Kategória: