Introducere în GridLayout în Java
Managerii de machete sunt folosiți în programarea grafică pentru a aranja componentele într-un mod specific. Acestea sunt utilizate pentru a determina dimensiunea și poziția unei componente într-un recipient. Există diferite tipuri de manageri de layout disponibile. GridLayout este unul dintre ele. GridLayout în Java împarte containerul într-o grilă de celule numite rânduri și coloane. Dispune componentele într-o grilă dreptunghiulară. Fiecare celulă poate găzdui o singură componentă, dimensionată în egală măsură și echivalată între ele.
Exemplu: 3 rânduri și 4 coloane
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Pași obișnuiți-Gridlayout în Java
- Setarea containerului cu ajutorul constructorului JFrame:
Cadru JFrame = JFrame nou (); - Setarea managerului de dispunere a panoului folosind constructorul JPanel:
Panou JPanel = nou JPanel (); - Adăugarea de componente la container:
panel.add (buton); frame.add (panou); - Setarea orientării componentelor:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
Valoarea implicită a proprietății ComponentOrientation este aceea că orientarea componentelor este orizontală și de la stânga la dreapta.
Tipuri de constructori cu exemplu
Mai jos sunt tipurile de constructori cu exemple și cod.
1. GridLayout ()
Constructor gol cu o coloană per componentă într-un singur rând.
Cod
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);
)
)
ieşire:
2. GridLayout (rânduri int, coloane int)
Constructor cu un număr specific de rânduri și coloane.
parametri:
rânduri - numărul de rânduri (valoarea zero însemnând orice număr de rânduri).
coloane - numărul de coloane (valoarea zero însemnând orice număr de coloane).
Cod
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);
)
)
ieşire:
3. GridLayout (rânduri int, coloane int, decalaj orizontal, decalaj vertical).
Constructor cu un număr specific de rânduri și coloane, goluri orizontale și verticale între rânduri și coloane.
parametri:
rânduri - numărul de rânduri (valoarea zero însemnând orice număr de rânduri).
coloane - numărul de coloane (valoarea zero însemnând orice număr de coloane).
decalaj orizontal - între fiecare dintre coloane
verticală - între fiecare rând
aruncări:
IllegalArgumentException- dacă valoarea atât a rândurilor cât și a coloanelor este setată la zero.
Cod
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);
)
)
ieşire:
Exemplu cu Implementare
Caz: În programul de mai jos, de fiecare dată când efectul mouseover se întâmplă peste celula unei grile, culoarea acesteia se schimbă de la negru la alb.
Cod
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();
)
)
ieşire:
Concluzie
Gridlayout în Java este util atunci când doriți să faceți grile într-un container împreună cu o condiție, adică fiecare dintre celulele grilei este de dimensiuni egale și la distanță la fel de mare.
Există și alte metode disponibile, după cum am menționat mai jos:
1. getRows () - Obțineți numărul de rânduri.
2. setRows (int i) - Setați numărul de rânduri la valoarea specificată.
3. getColumns () - Obțineți numărul de coloane.
4. setColumns (int i) - Setați numărul de coloane la valoarea specificată.
5. getHgap () - Obține distanța orizontală dintre componente.
6. setHgap (int i) - Setați distanța orizontală dintre componente la valoarea specificată.
7.getVgap () - Obține golul vertical dintre componente.
8. setVgap (int i) - Setați golul vertical dintre componente la valoarea specificată.
9. addLayoutComponent (String name, Component comp) - Adaugă componenta specificată cu numele specificat în aspect.
10. removeLayoutComponent (Component comp) - elimină componenta specificată din aspectul containerului.
11. preferatLayoutSize (părintele containerului) - determină dimensiunea preferată a recipientului.
12. minimumLayoutSize (părintele containerului) - determină dimensiunea minimă a containerului.
13. layoutContainer (container parent) - închide containerul specificat.
14. toString () - returnează reprezentarea șirului a valorilor layout-ului grilei.
Articole recomandate
Acesta este un ghid pentru Gridlayout în Java. Aici am discutat tipurile de constructori cu exemple, coduri cu implementare. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-
- Sortare Merge în Java
- Aspect în Java
- Cele mai bune compilatoare Java
- Distrugător în Java
- Aspect HTML