Uvod u GridLayout na Javi
Upravitelji izgleda koriste se u grafičkom programiranju za organiziranje komponenti na određeni način. Oni se koriste za određivanje veličine i položaja komponente u spremniku. Dostupne su različite vrste upravitelja izgleda. GridLayout je jedan od njih. GridLayout u Javi dijeli spremnik u mrežu ćelija zvanih redaka i stupaca. Sastavlja komponente u pravokutnoj mreži. Svaka ćelija može smjestiti samo jednu komponentu, jednake veličine i jednake međusobno.
Primjer: 3 reda i 4 stupca
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Uobičajeni koraci-rešetka na Javi
- Postavljanje spremnika pomoću konstruktora JFrame:
JFrame frame = novi JFrame (); - Postavljanje upravitelja izgleda panela pomoću JPanel konstruktora:
JPanel ploča = novi JPanel (); - Dodavanje komponenti u spremnik:
panel.add (gumb) frame.add (panel); - Postavljanje orijentacije komponente:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
Zadana vrijednost svojstva ComponentOrientation je da je orijentacija komponenata vodoravna i slijeva na desno.
Vrste konstruktora s primjerom
Ispod su vrste konstruktora s primjerima i kodom.
1. GridLayout ()
Prazan konstruktor s jednim stupcem po komponenti u jednom retku.
Kodirati
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);
)
)
Izlaz:
2. GridLayout (int redovi, int stupci)
Konstruktor s određenim brojem redaka i stupaca.
parametri:
redaka - broj redaka (vrijednost nula znači bilo koji broj redaka).
stupaca - broj stupaca (vrijednost nula znači bilo koji broj stupaca).
Kodirati
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);
)
)
Izlaz:
3. GridLayout (int redovi, int stupci, int horizontalni jaz, int vertikalni jaz).
Konstruktor s određenim brojem redaka i stupaca, vodoravnim i okomitim razmacima između redova i stupaca.
parametri:
redaka - broj redaka (vrijednost nula znači bilo koji broj redaka).
stupaca - broj stupaca (vrijednost nula znači bilo koji broj stupaca).
vodoravni razmak - između svakog stupca
okomiti razmak - između svakog od redaka
baca:
IllegalArgumentException- ako je vrijednost oba redaka i stupaca postavljena na nulu.
Kodirati
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);
)
)
Izlaz:
Primjer s provedbom
Slučaj: U donjem programu, kad god se efekt prelaska mišem dogodi preko ćelije mreže, njezina se boja mijenja iz crne u bijelu.
Kodirati
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();
)
)
Izlaz:
Zaključak
Gridlayout na Javi koristan je kada želite napraviti rešetke u spremniku zajedno s jednim uvjetom, tj. Svaka ćelija rešetke je jednake veličine i jednako raspoređenih.
Postoje i druge dostupne metode kao što je spomenuto u nastavku:
1. getRows () - Dobijte broj redaka.
2. setRows (int i) - Postavite broj redova na navedenu vrijednost.
3. getColumn () - Dohvatite broj stupaca.
4. setColumn (int i) - Postavite broj stupaca na navedenu vrijednost.
5. getHgap () - Postavlja vodoravni razmak između komponenata.
6. setHgap (int i) - Postavite vodoravni razmak između komponenata na navedenu vrijednost.
7.getVgap () - Postavlja okomiti razmak između komponenata.
8. setVgap (int i) - Postavite vertikalni razmak između komponenata na navedenu vrijednost.
9. addLayoutComponent (Naziv niza, Component comp) - dodaje navedenu komponentu s navedenim nazivom u izgled.
10. removeLayoutComponent (Component comp) - uklanja navedenu komponentu iz izgleda spremnika.
11. preferenceLayoutSize (nadređeni spremnik) - Određuje preferiranu veličinu spremnika.
12. minimalLayoutSize (nadređeni spremnik) - Određuje minimalnu veličinu spremnika.
13. layoutContainer (nadređeni spremnik) - Iznosi navedeni spremnik.
14. toString () - Vraća nizove vrijednosti rasporeda rešetke.
Preporučeni članci
Ovo je vodič za Gridlayout na Javi. Ovdje smo s primjerima razgovarali o vrstama konstruktora, kodovima s implementacijom. Možete i proći kroz naše druge povezane članke da biste saznali više -
- Spajanje sortiranja u Javi
- Izgled u Javi
- Najbolji Java sastavljači
- Destruktor na Javi
- Izgled HTML-a