Introduzione a JPanel in Java

JPanel è una classe di container leggera più semplice che fa parte del pacchetto java.swing. Può raggruppare o archiviare un insieme di componenti, principalmente per creare un'interfaccia utente. È simile al pannello in Abstract Window Toolkit (AWT). JPanel non contiene bordi, barra del titolo o barra dei menu. Anche se esistono diversi gestori di layout, FlowLayout è il gestore di layout predefinito di JPanel ed eredita la classe JComponents. Se un componente deve essere collegato a un'applicazione, JPanel fornisce spazio. Cerchiamo di capire JPanel in dettaglio nelle seguenti sezioni.

Costruttori di JPanel in Java

JPanel può essere dichiarato utilizzando la sintassi seguente:

public class JPanel extends JComponent implements Accessible

JPanel non sarà completo senza costruttori. Di seguito sono riportati i diversi costruttori utilizzati in JPanel.

  • JPanel (): poiché FlowLayout è il gestore layout predefinito, viene creato un nuovo pannello con FlowLayout se viene chiamato questo costruttore.
  • JPanel (LayoutManager lm): viene creato un nuovo JPanel con il gestore del layout come lm.
  • JPanel (Boolean isDoubleBuffered): viene creato un nuovo JPanel con la strategia di buffering menzionata. Il valore può essere vero o falso in base al requisito.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): viene creato un nuovo JPanel con il gestore del layout specificato lm e la strategia di buffering.

Funzioni utilizzate in JPanel

Alcune delle funzioni comuni utilizzate in JPanel sono:

  • getUIClassID (): viene restituito il nome della classe look and feel (L & F) che rende questo componente.
  • add (Component comp): Component comp viene aggiunto al contenitore specificato.
  • getAccessibleContext (): viene restituito AccessibleContext correlato a JPanel.
  • getUI (): viene restituito l'oggetto look and feel (L & F) che esegue il rendering di questo componente.
  • setLayout (LayoutManager lm): il layout del contenitore è impostato sul gestore layout specificato lm.
  • setUI (PanelUI Pui): è impostato l'oggetto look and feel (L & F) che rende questo componente.
  • updateUI (): il valore di aspetto attuale (L & F) viene ripristinato con la proprietà UI.
  • paramString (): viene restituita la rappresentazione in formato stringa di JPanel.

Come creare un pannello in Java?

Come già discusso, la classe JPanel è del pacchetto java.swing e sottoclasse di java.swing.JComponent.

1. L'oggetto JPanel viene creato come indicato di seguito.

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

2. Creare una classe che si estende dalla classe JPanel.

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

3. Il gestore del layout può essere menzionato o meno in base al requisito.

Poiché FlowLayout è quello predefinito, possiamo usare alcuni altri layout nell'esempio.

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

4. La strategia di doppio buffering può essere applicata usando il costruttore JPanel (boolean isdoubleBuffered)

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

Dopo aver creato Panel in Java, impostiamo il layout manager per JPanel.

Per impostare il layout, utilizzare il metodo setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Qui, GridBagLayout è impostato come layout. Se stiamo usando la sintassi come

JPanel jp=new JPanel();

Quindi il layout è impostato come FlowLayout per impostazione predefinita.

I passaggi per aggiungere componenti nel contenitore sono spiegati nella sezione seguente.

Come aggiungere componenti in Java?

Per aggiungere componenti come button, JLabel, JTextfield, ecc. Useremo il metodo add (). Poiché ci sono diverse versioni per add (), il metodo utilizzato dipende dal gestore del layout del pannello.

1. Il metodo Add (Component cmp) verrà utilizzato per i gestori di layout come GridLayout, FlowLayout, SpringLayout, BoxLayout.

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

jp è l'oggetto di JPanel.

2. Il metodo Aggiungi (Component cmp, Object obj) verrà utilizzato per i gestori di layout come CardLayout, BorderLayout o 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);

Se stiamo usando GridBagLayout, GridBagConstraintsobject deve essere passato come secondo argomento.

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);

Se stiamo usando CardLayout, viene utilizzato il metodo add (String name, Component cmp). Qui il primo argomento è il nome del card.

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

Programma per implementare JPanel in Java

Ora vediamo il programma per implementare JPanel semplice in 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();
)
)

Uscita :

In questo programma, viene creato un pannello con pulsanti e campi di testo. Anche lo sfondo con il colore verde è impostato per il pannello. Colori, dimensioni, numero di pulsanti possono essere modificati in base a 0n requisito.

Supponiamo di voler creare un componente con BorderLayout. L'unica differenza nella sintassi è menzionata di seguito.

//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);

Di seguito è riportato l'output di esempio per il BorderLayout sopra.

Produzione:

Conclusione - JPanel in Java

JPanel è un contenitore semplice e leggero che raggruppa un insieme di componenti. Il layout può essere aggiunto al contenitore in base alle esigenze dell'utente. Anche se FlowLayout è quello predefinito, vengono utilizzati anche altri layout come BorderLayout, GridBagLayout, CardLayout. In questo documento vengono spiegati i diversi costruttori e diverse altre funzionalità di JPanel.

Articoli consigliati

Questa è una guida a JPanel in Java. Qui discutiamo come creare un pannello e come aggiungere componenti in Java insieme all'implementazione del codice. Puoi anche consultare i seguenti articoli per saperne di più-

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

Categoria: