Introduction à GridLayout en Java
Les gestionnaires de disposition sont utilisés dans la programmation graphique pour organiser les composants d'une manière spécifique. Ils sont utilisés pour déterminer la taille et la position d'un composant dans un conteneur. Il existe différents types de gestionnaires de disposition. GridLayout est l'un d'entre eux. GridLayout en Java divise le conteneur en une grille de cellules appelées lignes et colonnes. Il dispose les composants dans une grille rectangulaire. Chaque cellule ne peut accueillir qu'un seul composant, de taille égale et espacées les unes des autres.
Exemple: 3 lignes et 4 colonnes
1 | 2 | 3 | 4 |
5 | 6 | sept | 8 |
9 | dix | 11 | 12 |
Étapes communes-Gridlayout en Java
- Définition du conteneur à l'aide du constructeur JFrame:
Cadre JFrame = nouveau JFrame (); - Définition du gestionnaire de disposition du panneau à l'aide du constructeur JPanel:
Panneau JPanel = nouveau JPanel (); - Ajout de composants au conteneur:
panel.add (bouton); frame.add (panneau); - Définition de l'orientation des composants:
panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
La valeur par défaut de la propriété ComponentOrientation est que l'orientation des composants est horizontale et de gauche à droite.
Types de constructeurs avec exemple
Voici les types de constructeurs avec des exemples et du code.
1. GridLayout ()
Constructeur vide avec une colonne par composant sur une seule ligne.
Code
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);
)
)
Production:
2. GridLayout (lignes int, colonnes int)
Constructeur avec un nombre spécifié de lignes et de colonnes.
Paramètres:
lignes - le nombre de lignes (valeur zéro signifiant n'importe quel nombre de lignes).
colonnes - le nombre de colonnes (valeur zéro signifiant n'importe quel nombre de colonnes).
Code
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);
)
)
Production:
3. GridLayout (int lignes, int colonnes, int interstice horizontal, int interstice vertical).
Constructeur avec un nombre spécifié de lignes et de colonnes, des espaces horizontaux et verticaux entre les lignes et les colonnes.
Paramètres:
lignes - le nombre de lignes (valeur zéro signifiant n'importe quel nombre de lignes).
colonnes - le nombre de colonnes (valeur zéro signifiant n'importe quel nombre de colonnes).
espace horizontal - entre chacune des colonnes
écart vertical - entre chacune des rangées
Jette:
IllegalArgumentException - si la valeur des lignes et des colonnes est définie sur zéro.
Code
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);
)
)
Production:
Exemple avec implémentation
Cas: Dans le programme ci-dessous, chaque fois que l'effet survol survient sur la cellule d'une grille, sa couleur passe du noir au blanc.
Code
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();
)
)
Production:
Conclusion
Gridlayout en Java est utile lorsque vous souhaitez créer des grilles dans un conteneur avec une condition, c'est-à-dire que chacune des cellules de la grille est de taille égale et également espacée.
Il existe d'autres méthodes disponibles, comme mentionné ci-dessous:
1. getRows () - Récupère le nombre de lignes.
2. setRows (int i) - Définissez le nombre de lignes à la valeur spécifiée.
3. getColumns () - Récupère le nombre de colonnes.
4. setColumns (int i) - Définissez le nombre de colonnes à la valeur spécifiée.
5. getHgap () - Obtient l'écart horizontal entre les composants.
6. setHgap (int i) - Définissez l'écart horizontal entre les composants à la valeur spécifiée.
7.getVgap () - Obtient l'écart vertical entre les composants.
8. setVgap (int i) - Définissez l'écart vertical entre les composants à la valeur spécifiée.
9. addLayoutComponent (String name, Component comp) - Ajoute le composant spécifié avec le nom spécifié à la présentation.
10. removeLayoutComponent (Component comp) - supprime le composant spécifié de la disposition du conteneur.
11. PreferredLayoutSize (parent du conteneur) - Détermine la taille préférée du conteneur.
12. minimumLayoutSize (parent du conteneur) - Détermine la taille minimale du conteneur.
13. layoutContainer (Container parent) - Dispose le conteneur spécifié.
14. toString () - Renvoie la représentation sous forme de chaîne des valeurs de disposition de la grille.
Articles recommandés
Ceci est un guide de Gridlayout en Java. Ici, nous avons discuté des types de constructeurs avec des exemples, des codes avec implémentation. Vous pouvez également consulter nos autres articles connexes pour en savoir plus-
- Fusionner le tri en Java
- Disposition en Java
- Meilleurs compilateurs Java
- Destructeur en Java
- Disposition HTML