Gridlayout v Javě - Druhy konstruktérů Příklad s implementací

Obsah:

Anonim

Ú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

1234
5678
9101112

Běžné kroky v programu Java

  1. Nastavení kontejneru pomocí konstruktoru JFrame:
    Frame JFrame = new JFrame ();
  2. Nastavení správce rozvržení panelu pomocí konstruktoru JPanel:
    Panel JPanel = nový JPanel ();
  3. Přidávání komponent do kontejneru:
    panel.add (button); frame.add (panel);
  4. 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.

  1. Sloučit řazení v Javě
  2. Rozložení v Javě
  3. Nejlepší Java překladače
  4. Destruktor v Javě
  5. Rozvržení HTML