Introduction à JPanel en Java

JPanel est une classe de conteneur léger la plus simple qui fait partie du package java.swing. Il peut regrouper ou stocker un ensemble de composants ensemble, principalement pour créer une interface utilisateur. Il est similaire au panneau dans Abstract Window Toolkit (AWT). JPanel ne contient pas de bordure, de barre de titre ou de barre de menus. Même s'il existe plusieurs gestionnaires de disposition, FlowLayout est le gestionnaire de disposition par défaut de JPanel et il hérite de la classe JComponents. Si un composant doit être attaché à une application, JPanel fournit de l'espace. Comprenons JPanel en détail dans les sections suivantes.

Constructeurs de JPanel en Java

JPanel peut être déclaré à l'aide de la syntaxe suivante:

public class JPanel extends JComponent implements Accessible

JPanel ne sera pas complet sans constructeurs. Voici les différents constructeurs utilisés dans JPanel.

  • JPanel (): Puisque FlowLayout est le gestionnaire de disposition par défaut, un nouveau panneau est créé avec FlowLayout si ce constructeur est appelé.
  • JPanel (LayoutManager lm): Un nouveau JPanel est créé avec le gestionnaire de disposition en tant que lm.
  • JPanel (Boolean isDoubleBuffered): Un nouveau JPanel est créé avec la stratégie de mise en mémoire tampon mentionnée. La valeur peut être vraie ou fausse en fonction de l'exigence.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): un nouveau JPanel est créé avec le gestionnaire de disposition lm et la stratégie de mise en mémoire tampon spécifiés.

Fonctions utilisées dans JPanel

Certaines des fonctions communes utilisées dans JPanel sont:

  • getUIClassID (): le nom de la classe de look and feel (L & F) qui rend ce composant est retourné.
  • add (composant comp): le composant composant est ajouté au conteneur spécifié.
  • getAccessibleContext (): AccessibleContext lié au JPanel est retourné.
  • getUI (): L'objet Look and feel (L & F) qui rend ce composant est retourné.
  • setLayout (LayoutManager lm): la disposition du conteneur est définie sur le gestionnaire de disposition spécifié lm.
  • setUI (PanelUI Pui): L'objet Look and Feel (L & F) qui rend ce composant est défini.
  • updateUI (): la valeur de look and feel (L & F) actuelle est réinitialisée avec la propriété UI.
  • paramString (): la représentation sous forme de chaîne du JPanel est renvoyée.

Comment créer un panneau en Java?

Comme déjà discuté, la classe JPanel est du package java.swing et de la sous-classe de java.swing.JComponent.

1. L'objet JPanel est créé comme mentionné ci-dessous.

JPanel jp=new JPanel(); //jp is the object

2. Créez une classe qui s'étend à partir de JPanel Class.

public class jpclass extends JPanel()
(
//code to add the components
)

3. Le gestionnaire de mise en page peut être mentionné ou non en fonction de l'exigence.

Étant donné que FlowLayout est celui par défaut, nous pouvons utiliser d'autres dispositions dans l'exemple.

JPanel jp=new JPanel(new BorderLayout);
JPanel jp=new JPanel(new GridBagLayout);

4. La stratégie de double tampon peut être appliquée en utilisant le constructeur JPanel (boolean isdoubleBuffered)

JPanel jp=new JPanel(true);//double buffering enables
JPanel jp=new JPanel(false); //double buffering disables

Après avoir créé Panel en Java, définissons le gestionnaire de mise en page pour JPanel.

Pour définir la mise en page, utilisez la méthode setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Ici, un GridBagLayout est défini comme disposition. Si nous utilisons la syntaxe comme

JPanel jp=new JPanel();

Ensuite, la disposition est définie comme FlowLayout par défaut.

Les étapes pour ajouter des composants dans le conteneur sont expliquées dans la section ci-dessous.

Comment ajouter des composants en Java?

Afin d'ajouter des composants tels que bouton, JLabel, JTextfield, etc., nous utiliserons la méthode add (). Comme il existe différentes versions pour add (), la méthode utilisée dépend du gestionnaire de disposition du panneau.

1. La méthode Add (Component cmp) sera utilisée pour les gestionnaires de disposition tels que GridLayout, FlowLayout, SpringLayout, BoxLayout.

JLabel jl = new JLabel("Username: ");
JTextField un= new JTextField(20);
jp.add(jl);
jp.add(un);

jp est l'objet de JPanel.

2. La méthode Add (Component cmp, Object obj) sera utilisée pour les gestionnaires de disposition tels que CardLayout, BorderLayout ou GridBagLayout.

JPanel jp = new JPanel(new BorderLayout());
JLabel jl = new JLabel("Username:");
JTextField un = new JTextField(40);
jp.add(label, BorderLayout.NORTH);
jp.add(userName, BorderLayout.WEST);

Si nous utilisons GridBagLayout, GridBagConstraintsobject doit être passé comme deuxième argument.

GridBagConstraints cn = new GridBagConstraints();
cn.anchor = GridBagConstraints.WEST;
cn.insets = new Insets(10, 10, 10, 10);
cn.gridx = 0;
cn.gridy = 0;
jp.add(labelUsername, constraints);

Si nous utilisons CardLayout, la méthode add (String name, Component cmp) est utilisée. Ici, le premier argument est le nom de Card.

JPanel cl = new JPanel(new CardLayout());
cl.add("A", step1Panel);
cl.add("B", step2Panel);

Programme pour implémenter JPanel en Java

Voyons maintenant le programme pour implémenter JPanel simple en Java.

// java Program to create a simple JPanel add components to it
import java.awt.*;
import javax.swing.*;
//A sub class is created b extending JFrame
class JPanelProgram extends JFrame (
// creates a JFrame
static JFrame fr;
// creates JButton
static JButton bt, bt1, bt2;
//creates JLabel that helps in displaying the text
static JLabel lb;
// main class
public static void main(String() args)
(
// A new frame is created to store buttons
fr= new JFrame("Panel");
// Label to display text is created
lb= new JLabel("Panel's Label");
//new buttons are created
bt = new JButton("A Button");
bt1 = new JButton("B Button");
bt2 = new JButton("C Button");
//Panel to add buttons is created
JPanel p = new JPanel();
//Add buttons and text field to panel
p.add(bt);
p.add(bt1);
p.add(bt2);
p.add(lb);
// set the background color of panel
p.setBackground(Color.green);
// add panel to frame
fr.add(p);
// set the size of frame
fr.setSize(400, 300);
fr.show();
)
)

Sortie :

Dans ce programme, un panneau est créé avec des boutons et des champs de texte. Un arrière-plan de couleur verte est également défini pour le panneau. Les couleurs, la taille, le nombre de boutons peuvent être modifiés en fonction de l'exigence.

Supposons que nous voulons créer un composant avec BorderLayout. La seule différence de syntaxe est mentionnée ci-dessous.

//Panel to add buttons is created
JPanel jp = new JPanel(new BorderLayout());
//Add buttons and text field to panel
jp.add(bt, BorderLayout.NORTH);
jp.add(bt1, BorderLayout.SOUTH);
jp.add(bt2, BorderLayout.CENTER);

Voici l'exemple de sortie pour le BorderLayout ci-dessus.

Production:

Conclusion - JPanel en Java

JPanel est un conteneur simple et léger qui regroupe un ensemble de composants. La mise en page peut être ajoutée au conteneur en fonction des besoins de l'utilisateur. Même si FlowLayout est celui par défaut, d'autres dispositions telles que BorderLayout, GridBagLayout, CardLayout sont également utilisées. Dans ce document, les différents constructeurs et plusieurs autres fonctionnalités de JPanel sont expliqués.

Articles recommandés

Ceci est un guide de JPanel en Java. Nous discutons ici comment créer un panneau et comment ajouter des composants en java avec l'implémentation du code. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. JScrollPane en Java
  2. JTextField en Java
  3. JDialog en Java
  4. JComboBox en Java
  5. JFrame en Java
  6. JLabel en Java