GroupLayout tutvustus Java-s
Java-siseses GroupLayout-is on paigutuse haldurid Java-komponentide jaoks nagu eri tüüpi „Wordi mähised”. Samamoodi, kui funktsioon „Word Wrap” mähib tekstimärgid tekstitöötlusprogrammi järgmisele reale ümber, ümbritsevad paigutuse haldurid „Kiige komponendid” JFrame'i või JAppleti nähtavale alale. Paigutuse haldurid tuletatakse AWT paketist. GroupLayouti haldurid on LayoutManager, mis grupeerib komponendid ja paigutab need JFrame'i või JAppletti. Seda kasutatakse graafilise kasutajaliidese väljatöötamiseks.
Komponentide jaoks kasutab GroupLayout kahte tüüpi kokkuleppeid:
- Järjestikune paigutus: Selles paigutuses on komponendid paigutatud üksteise järel järjestikku.
- Paralleelne paigutus: Selles paigutuses asetatakse komponendid paralleelselt samasse kohta.
Kui need pesastatakse hierarhiliselt, muutuvad need kaks paigutust võimsamaks, mille jaoks GroupLayout määratleb paigutusrühmad. Rühm võib olla kas paralleelne või järjestikune ja see võib sisaldada komponente, muid rühmi ja lünki.
- Järjestikuse rühma suurus: mahutis sisalduvate kõigi komponentide suuruste summa.
- Paralleelse rühma suurus : konteineri suurima komponendi suurus.
GroupLayout klassi konstruktor Java-s
Allpool on grupiväljaande klassi konstruktor:
GroupLayout (konteineri host): määratud konteineri jaoks loob see GroupLayout.
Näide:
import java.awt.*;
import javax.swing.*;
public class GroupLayoutExample extends JFrame(
JPanel grpPanel = new JPanel();
GroupLayout grpLayout = new GroupLayout(grpPanel);
)
Paigutuse määratlemine: JFrame või JApplet sees olevate komponentide järjestamise viis järjestikuste ja paralleelsete rühmade ühendamise teel.
Näited GroupLayouti rakendamiseks Java-s
Allpool on toodud erinevad näited GroupLayouti Java rakendamiseks:
Näide nr 1
Alustame lihtsa näitega, millel on kaks komponenti järjest.
Kirjeldame seda paigutust rühmade abil. Alustades horisontaalteljest, koosneb kahest komponendist koosnev järjestikurühm vasakult paremale. Alustades vertikaalteljest, paralleelne rühm, mis koosneb kahest sama positsiooniga komponendist.
Kood:
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();
)
)
Väljund:
Näide 2
Oletame, et neil on kaks komponenti nagu allpool:
Kirjeldame seda paigutust rühmade abil. Alustades horisontaalteljest, koosneb kahest komponendist koosnev järjestikurühm vasakult paremale. Alustades vertikaalteljest, kahest komponendist koosnev järjestikune rühm vasakult paremale.
Kood:
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();
)
)
Väljund:
Näide 3
Lünk on nagu teatud suurusega nähtamatu komponent.
Neid kasutatakse sageli komponentidevahelise või konteineri piirist kauguse kontrollimiseks. Samuti määratletakse automaatsed lüngad eelistatud vahemaadena naaberkomponentide vahel. See kasutab kolme tüüpi lünki komponentide või komponentide ja piiride vahel: SEOTUD, SIDAMATA JA NENDEGA. Midagi eksklusiivset järjestikuste rühmade jaoks on lüngad. Lüngad eraldavad komponendid märgitud pikslite arvuga. Nüüd anname horisontaalse pilu 20 ja vertikaalse pilu 30.
Kood:
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();
)
)
Väljund:
Näide 4
Aga mis siis, kui me tahame paralleelrühmas tühimikku?
Kuid lünki ei saa paralleelsetes rühmades kasutada. Niisiis, lünga loomiseks kasutatakse erinevat meetodit. See kasutab paralleelsete ja järjestikuste rühmade kombinatsiooni. See algab paralleelrühma ja esimese komponendiga. Siis on sellel paralleelrühmas järjestikune rühm. Ja lisab tühiku selles järjestikuses rühmas ja lõpuks lisab teise komponendi. Vertikaalsed rühmad sisaldavad järjestikku mõlemat komponenti.
Kood:
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();
)
)
Väljund:
Näide 5
Nüüd loome kompositsioonipaigutused.
Paigutuse toetamiseks peame looma ruudustiku ja JPaneli ning seadistama neli nuppu (2, 2) mustris. Kõigepealt alustame horisontaalrühma paralleelrühmaga, millele järgneb ruudustiku paneeli lisamine. Ja järjestikune rühm paralleelrühmas ning kahe nupu lisamine järjestikku horisontaalselt. Järgmisena algab vertikaalses rühmas järjestikurühm. Siis lisame ruudustiku paigutuse JPanel. Järgmisena tuleb kahe nupu jaoks paralleelrühm. Ja lõpuks valmis ehituse meetod.
Kood:
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();
)
)
Väljund:
Järeldus
GroupLayout on kasulik, kui soovite oma komponendid konteineritesse hierarhiliselt rühmitada. Mõned selles artiklis kasulikud meetodid on järgmised:
- Java GroupLayout .createParallelGroup (): loob paralleelrühma ja tagastab selle.
- Java GroupLayout .createSequentialGroup (): loob ja tagastab järjestuse grupi.
Soovitatavad artiklid
See on JavaScripti GroupLayout juhend. Siin käsitleme grupiväljaande klassi ehitajat viies erinevas näites. Lisateavet leiate ka meie muudest seotud artiklitest -
- BorderLayout Java-s
- BoxLayout Java-s
- Ruudustiku paigutus Java-s
- CardLayout Java-s
- HTML-i paigutus