Introduzione a GridLayout in Java
I gestori layout sono utilizzati nella programmazione grafica per disporre i componenti in un modo specifico. Sono utilizzati per determinare le dimensioni e la posizione di un componente in un contenitore. Sono disponibili diversi tipi di gestori layout. GridLayout è uno di questi. GridLayout in Java divide il contenitore in una griglia di celle chiamate righe e colonne. Dispone i componenti in una griglia rettangolare. Ogni cella può ospitare solo un componente, ugualmente dimensionato e disposto uno di fronte all'altro.
Esempio: 3 righe e 4 colonne
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Passaggi-Gridlayout comuni in Java
- Impostazione del contenitore tramite il costruttore JFrame:
JFrame frame = new JFrame (); - Impostare il layout manager del pannello usando il costruttore JPanel:
Pannello JPanel = new JPanel (); - Aggiunta di componenti al contenitore:
panel.add (pulsante); frame.add (pannello); - Impostazione dell'orientamento del componente:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
Il valore predefinito della proprietà ComponentOrientation è che l'orientamento dei componenti è orizzontale e da sinistra a destra.
Tipi di costruttori con esempio
Di seguito sono riportati i tipi di costruttori con esempi e codice.
1. GridLayout ()
Costruttore vuoto con una colonna per componente in una singola riga.
Codice
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);
)
)
Produzione:
2. GridLayout (righe int, colonne int)
Costruttore con un numero specificato di righe e colonne.
parametri:
righe: il numero di righe (valore zero che significa qualsiasi numero di righe).
colonne: il numero di colonne (valore zero che significa qualsiasi numero di colonne).
Codice
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);
)
)
Produzione:
3. GridLayout (righe int, colonne int, gap orizzontale int, gap verticale int).
Costruttore con un numero specificato di righe e colonne, spazi orizzontali e verticali tra righe e colonne.
parametri:
righe: il numero di righe (valore zero che significa qualsiasi numero di righe).
colonne: il numero di colonne (valore zero che significa qualsiasi numero di colonne).
spazio orizzontale tra ciascuna delle colonne
divario verticale tra ciascuna delle file
Produce:
IllegalArgumentException- se il valore di entrambe le righe e le colonne è impostato su zero.
Codice
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);
)
)
Produzione:
Esempio con implementazione
Caso: nel programma seguente, ogni volta che si verifica l'effetto del passaggio del mouse sulla cella di una griglia, il suo colore cambia da nero a bianco.
Codice
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();
)
)
Produzione:
Conclusione
Gridlayout in Java è utile quando si desidera creare griglie in un contenitore insieme a una condizione, ovvero ciascuna delle celle della griglia ha le stesse dimensioni e equidistanti.
Esistono altri metodi disponibili anche come indicato di seguito:
1. getRows () - Ottieni il numero di righe.
2. setRows (int i) - Imposta il numero di righe sul valore specificato.
3. getColumns () - Ottieni il numero di colonne.
4. setColumns (int i) - Imposta il numero di colonne sul valore specificato.
5. getHgap () - Ottiene lo spazio orizzontale tra i componenti.
6. setHgap (int i) - Imposta lo spazio orizzontale tra i componenti sul valore specificato.
7.getVgap () - Ottiene lo spazio verticale tra i componenti.
8. setVgap (int i) - Imposta lo spazio verticale tra i componenti sul valore specificato.
9. addLayoutComponent (Nome stringa, Comp. Componente) - Aggiunge il componente specificato con il nome specificato al layout.
10. removeLayoutComponent (Component comp): rimuove il componente specificato dal layout del contenitore.
11. favoriteLayoutSize (contenitore contenitore) - Determina la dimensione preferita del contenitore.
12. minimumLayoutSize (contenitore contenitore) - Determina la dimensione minima del contenitore.
13. layoutContainer (contenitore contenitore): distribuisce il contenitore specificato.
14. toString () - Restituisce la rappresentazione in formato stringa dei valori del layout della griglia.
Articoli consigliati
Questa è una guida a Gridlayout in Java. Qui abbiamo discusso i tipi di costruttori con esempi, codici con implementazione. Puoi anche consultare i nostri altri articoli correlati per saperne di più-
- Unisci ordinamento in Java
- Layout in Java
- I migliori compilatori Java
- Distruttore in Java
- Layout HTML