Wprowadzenie do GridLayout w Javie
Menedżery układów są używane w programowaniu graficznym do ustawiania komponentów w określony sposób. Służą do określania wielkości i położenia komponentu w kontenerze. Dostępne są różne typy menedżerów układu. GridLayout jest jednym z nich. GridLayout w Javie dzieli kontener na siatkę komórek zwanych wierszami i kolumnami. Układa komponenty w prostokątną siatkę. Każda komórka może pomieścić tylko jeden element, jednakowej wielkości i równy względem siebie.
Przykład: 3 rzędy i 4 kolumny
1 | 2) | 3) | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Typowe kroki - Gridlayout w Javie
- Ustawianie kontenera za pomocą konstruktora JFrame:
JFrame frame = new JFrame (); - Ustawianie menedżera układu panelu za pomocą konstruktora JPanel:
Panel JPanel = nowy JPanel (); - Dodawanie komponentów do kontenera:
panel.add (przycisk); frame.add (panel); - Ustawianie orientacji komponentu:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
Domyślna wartość właściwości ComponentOrientation polega na tym, że orientacja komponentów jest pozioma i od lewej do prawej.
Rodzaje konstruktorów z przykładem
Poniżej znajdują się typy konstruktorów wraz z przykładami i kodem.
1. GridLayout ()
Pusty konstruktor z jedną kolumną na komponent w jednym rzędzie.
Kod
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);
)
)
Wynik:
2. GridLayout (int wiersze, int kolumny)
Konstruktor o określonej liczbie wierszy i kolumn.
Parametry:
wiersze - liczba wierszy (wartość zero oznacza dowolną liczbę wierszy).
kolumny - liczba kolumn (wartość zero oznacza dowolną liczbę kolumn).
Kod
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);
)
)
Wynik:
3. GridLayout (int rzędy, int kolumny, int horyzontalna przerwa, int pionowa przerwa).
Konstruktor z określoną liczbą wierszy i kolumn, poziomymi i pionowymi przerwami między rzędami i kolumnami.
Parametry:
wiersze - liczba wierszy (wartość zero oznacza dowolną liczbę wierszy).
kolumny - liczba kolumn (wartość zero oznacza dowolną liczbę kolumn).
odstęp poziomy - między każdą z kolumn
odstęp pionowy między każdym rzędem
Rzuty:
IllegalArgumentException - jeśli wartość zarówno wierszy, jak i kolumn jest ustawiona na zero.
Kod
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);
)
)
Wynik:
Przykład z implementacją
Przypadek: W poniższym programie, ilekroć efekt myszy znajdzie się nad komórką siatki, jego kolor zmienia się z czarnego na biały.
Kod
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();
)
)
Wynik:
Wniosek
Gridlayout w Javie jest przydatny, gdy chcesz tworzyć siatki w kontenerze wraz z jednym warunkiem, tj. Każda z komórek siatki ma równy rozmiar i jednakowy odstęp.
Istnieją również inne dostępne metody, jak wspomniano poniżej:
1. getRows () - Uzyskaj liczbę wierszy.
2. setRows (int i) - Ustaw liczbę wierszy na określoną wartość.
3. getColumns () - Uzyskaj liczbę kolumn.
4. setColumns (int i) - Ustaw liczbę kolumn na określoną wartość.
5. getHgap () - Pobiera odstęp poziomy między komponentami.
6. setHgap (int i) - Ustaw odstęp poziomy między komponentami na określoną wartość.
7.getVgap () - Pobiera pionową szczelinę między komponentami.
8. setVgap (int i) - Ustaw odstęp pionowy między komponentami na określoną wartość.
9. addLayoutComponent (nazwa ciągu, Component comp) - Dodaje określony układ o podanej nazwie do układu.
10. removeLayoutComponent (Component comp) - usuwa określony składnik z układu kontenera.
11. preferowany rozmiar kontenera (element nadrzędny kontenera) - określa preferowany rozmiar kontenera.
12. minimumLayoutSize (kontener nadrzędny) - określa minimalny rozmiar kontenera.
13. layoutContainer (kontener nadrzędny) - określa określony kontener.
14. toString () - Zwraca ciąg znaków reprezentujący wartości układu siatki.
Polecane artykuły
To jest przewodnik po Gridlayout w Javie. Tutaj omówiliśmy typy konstruktorów z przykładami, kodami z implementacją. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-
- Scal sortowanie w Javie
- Układ w Javie
- Najlepsze kompilatory Java
- Destructor w Javie
- Układ HTML