Úvod do GridLayout v Javě
Správci rozvržení se používají v grafickém programování k uspořádání komponent specifickým způsobem. Používají se ke stanovení velikosti a polohy komponenty v kontejneru. K dispozici jsou různé typy správců rozvržení. GridLayout je jedním z nich. GridLayout v Javě rozděluje kontejner do mřížky buněk zvaných řádky a sloupce. Uspořádá komponenty do pravoúhlé mřížky. Každá buňka může pojmout pouze jednu komponentu, stejně velké a vzájemně vyrovnané.
Příklad: 3 řádky a 4 sloupce
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Běžné kroky v programu Java
- Nastavení kontejneru pomocí konstruktoru JFrame:
Frame JFrame = new JFrame (); - Nastavení správce rozvržení panelu pomocí konstruktoru JPanel:
Panel JPanel = nový JPanel (); - Přidávání komponent do kontejneru:
panel.add (button); frame.add (panel); - Nastavení orientace součásti:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
Výchozí hodnota vlastnosti ComponentOrientation je, že orientace komponent je vodorovná a zleva doprava.
Typy konstruktorů s příkladem
Níže jsou uvedeny typy konstruktérů s příklady a kódem.
1. GridLayout ()
Prázdný konstruktor s jedním sloupcem na komponentu v jednom řádku.
Kód
import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout());JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)
Výstup:
2. GridLayout (int řádky, int sloupce)
Konstruktor se zadaným počtem řádků a sloupců.
Parametry:
řádky - počet řádků (hodnota nula znamená libovolný počet řádků).
sloupce - počet sloupců (hodnota nula znamená libovolný počet sloupců).
Kód
import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)
Výstup:
3. GridLayout (řádky int, sloupce int, vodorovná mezera int, vertikální mezera int).
Konstruktor se zadaným počtem řádků a sloupců, vodorovné a svislé mezery mezi řádky a sloupci.
Parametry:
řádky - počet řádků (hodnota nula znamená libovolný počet řádků).
sloupce - počet sloupců (hodnota nula znamená libovolný počet sloupců).
vodorovná mezera - mezi jednotlivými sloupci
svislá mezera - mezi jednotlivými řádky
Hodí:
IllegalArgumentException - pokud je hodnota řádků i sloupců nastavena na nulu.
Kód
import java.awt.*;import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2, 5, 10));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)
Výstup:
Příklad s implementací
Případ: V níže uvedeném programu, kdykoli dojde k přechodu myší na buňku mřížky, změní se barva z černé na bílou.
Kód
import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class gridLayout extends JPanel(
public gridLayout() (
super(new GridLayout(3, 3));
JLabel label1, label2, label3, label4, label5, label6, label7, label8, label9;
//create the lables
label1 = new JLabel();
label2 = new JLabel();
label3 = new JLabel();
label4 = new JLabel();
label5 = new JLabel();
label6 = new JLabel();
label7 = new JLabel();
label8 = new JLabel();
label9 = new JLabel();
//set the background color for each label
label1.setBackground(Color.BLACK);
label1.setOpaque(true);
label2.setBackground(Color.BLACK);
label2.setOpaque(true);
label3.setBackground(Color.BLACK);
label3.setOpaque(true);
label4.setBackground(Color.BLACK);
label4.setOpaque(true);
label5.setBackground(Color.BLACK);
label5.setOpaque(true);
label6.setBackground(Color.BLACK);
label6.setOpaque(true);
label7.setBackground(Color.BLACK);
label7.setOpaque(true);
label8.setBackground(Color.BLACK);
label8.setOpaque(true);
label9.setBackground(Color.BLACK);
label9.setOpaque(true);
//add mouse listeners for each label
label1.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label1.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label1.setBackground(Color.BLACK);
)
));
label2.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label2.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label2.setBackground(Color.BLACK);
)
));
label3.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label3.setBackground(Color.WHITE);)
public void mouseExited(MouseEvent me) (
label3.setBackground(Color.BLACK);
)
));
label4.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label4.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label4.setBackground(Color.BLACK);)
));
label5.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label5.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label5.setBackground(Color.BLACK);
)));
label6.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label6.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label6.setBackground(Color.BLACK);
)
));
label7.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label7.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label7.setBackground(Color.BLACK);
)
));
label8.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label8.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label8.setBackground(Color.BLACK);
)
));label9.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label9.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label9.setBackground(Color.BLACK);
)
));
//add the labels
add(label1);
add(label2);
add(label3);
add(label4);
add(label5);
add(label6);
add(label7);
add(label8);
add(label9);
)
private static void createAndShowGUI() (
//create and setup the container
JFrame frame = new JFrame("Gridlayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
//add content to the container
frame.add(new gridLayout());
//display the container
frame.pack();
frame.setVisible(true);
)public static void main(String() args) (
createAndShowGUI();
)
)
Výstup:
Závěr
Gridlayout v Javě je užitečná, pokud chcete vytvořit mřížky v kontejneru spolu s jednou podmínkou, tj. Každá z buněk mřížky je stejná a rovnoměrně rozložená.
Dále jsou uvedeny další dostupné metody:
1. getRows () - Získat počet řádků.
2. setRows (int i) - Nastaví počet řádků na zadanou hodnotu.
3. getColumns () - Získat počet sloupců.
4. setColumns (int i) - Nastaví počet sloupců na zadanou hodnotu.
5. getHgap () - Získá vodorovnou mezeru mezi komponenty.
6. setHgap (int i) - Nastaví horizontální mezeru mezi komponenty na zadanou hodnotu.
7.getVgap () - Získá vertikální mezeru mezi komponenty.
8. setVgap (int i) - Nastaví svislou mezeru mezi komponenty na zadanou hodnotu.
9. addLayoutComponent (String name, Component comp) - přidá do rozložení zadanou komponentu se zadaným názvem.
10. removeLayoutComponent (Component comp) - odebere zadanou komponentu z rozvržení kontejneru.
11. výhodnéLayoutSize (Nadřazený kontejner) - Určuje preferovanou velikost kontejneru.
12. minimumLayoutSize (Nadřazený kontejner) - Určuje minimální velikost kontejneru.
13. layoutContainer (Container parent) - Rozdělí určený kontejner.
14. toString () - Vrací řetězcové vyjádření hodnot rozložení mřížky.
Doporučené články
Toto je průvodce po Gridlayout v Javě. Zde jsme diskutovali typy konstruktérů s příklady, kódy s implementací. Další informace naleznete také v dalších souvisejících článcích.
- Sloučit řazení v Javě
- Rozložení v Javě
- Nejlepší Java překladače
- Destruktor v Javě
- Rozvržení HTML