Introducción a JPanel en Java

JPanel es una clase de contenedor liviano más simple que forma parte del paquete java.swing. Puede agrupar o almacenar un conjunto de componentes, principalmente para crear una interfaz de usuario. Es similar al panel en Abstract Window Toolkit (AWT). JPanel no contiene borde, barra de título o barra de menú. Aunque existen varios administradores de diseño, FlowLayout es el administrador de diseño predeterminado de JPanel y hereda la clase JComponents. Si se debe adjuntar un componente a una aplicación, JPanel proporciona espacio. Comprendamos JPanel en detalle en las siguientes secciones.

Constructores de JPanel en Java

JPanel se puede declarar utilizando la siguiente sintaxis:

public class JPanel extends JComponent implements Accessible

JPanel no estará completo sin constructores. Los siguientes son los diferentes constructores utilizados en JPanel.

  • JPanel (): Dado que FlowLayout es el administrador de diseño predeterminado, se crea un nuevo panel con FlowLayout si se llama a este constructor.
  • JPanel (LayoutManager lm): se crea un nuevo JPanel con el administrador de diseño como lm.
  • JPanel (Boolean isDoubleBuffered): se crea un nuevo JPanel con la estrategia de almacenamiento en búfer mencionada. El valor puede ser verdadero o falso según el requisito.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): se crea un nuevo JPanel con el gestor de diseño especificado lm y la estrategia de almacenamiento en búfer.

Funciones utilizadas en JPanel

Algunas de las funciones comunes utilizadas en JPanel son:

  • getUIClassID (): se devuelve el nombre de clase de apariencia ( L & F) que representa este componente.
  • add (Component comp): la compilación de componentes se agrega al contenedor especificado.
  • getAccessibleContext (): se devuelve AccessibleContext relacionado con JPanel.
  • getUI (): se devuelve el objeto de apariencia ( L & F) que representa este componente.
  • setLayout (LayoutManager lm): el diseño del contenedor se establece en el administrador de diseño especificado lm.
  • setUI (PanelUI Pui): el objeto Look and feel (L & F) que representa este componente está configurado.
  • updateUI (): el valor actual de apariencia (L & F) se restablece con la propiedad UI.
  • paramString (): se devuelve la representación de cadena del JPanel.

¿Cómo crear un panel en Java?

Como ya se discutió, la clase JPanel es del paquete java.swing y la subclase de java.swing.JComponent.

1. El objeto JPanel se crea como se menciona a continuación.

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

2. Cree una clase que se extienda desde JPanel Class.

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

3. El administrador de diseño puede mencionarse o no según el requisito.

Dado que FlowLayout es el predeterminado, podemos usar algunos otros diseños en el ejemplo.

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

4. La estrategia de doble almacenamiento en búfer se puede aplicar utilizando el constructor JPanel (boolean isdoubleBuffered)

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

Después de crear el Panel en Java, configuremos el administrador de diseño para JPanel.

Para establecer el diseño, utilice el método setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Aquí, un GridBagLayout se establece como el diseño. Si estamos usando la sintaxis como

JPanel jp=new JPanel();

Luego, el diseño se establece como FlowLayout de forma predeterminada.

Los pasos para agregar componentes en el contenedor se explican en la siguiente sección.

¿Cómo agregar componentes en Java?

Para agregar componentes como button, JLabel, JTextfield, etc., utilizaremos el método add (). Dado que existen diferentes versiones para add (), el método que se use depende del administrador de diseño del panel.

1. El método Agregar (componente cmp) se utilizará para los administradores de diseño como GridLayout, FlowLayout, SpringLayout, BoxLayout.

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

jp es el objeto de JPanel.

2. El método Agregar (Componente cmp, Objeto obj) se usará para administradores de diseño como 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);

Si estamos utilizando GridBagLayout, GridBagConstraintsobject debe pasarse como segundo argumento.

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 estamos usando CardLayout, se usa el método add (String name, Component cmp). Aquí el primer argumento es el nombre de Card.

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

Programa para implementar JPanel en Java

Ahora, veamos el programa para implementar 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();
)
)

Salida :

En este programa, se crea un panel con botones y campos de texto. El fondo con color verde también está configurado para el panel. Los colores, el tamaño y la cantidad de botones se pueden cambiar según el requisito.

Supongamos que queremos crear un componente con BorderLayout. La única diferencia en la sintaxis se menciona a continuación.

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

A continuación se muestra el resultado de muestra para el BorderLayout anterior.

Salida:

Conclusión - JPanel en Java

JPanel es un contenedor simple y liviano que agrupa un conjunto de componentes. El diseño se puede agregar al contenedor según los requisitos del usuario. Aunque FlowLayout es el predeterminado, también se utilizan otros diseños como BorderLayout, GridBagLayout, CardLayout. En este documento, se explican los diferentes constructores y varias otras características de JPanel.

Artículos recomendados

Esta es una guía de JPanel en Java. Aquí discutimos cómo crear un panel y cómo agregar componentes en Java junto con la implementación del código. También puede consultar los siguientes artículos para obtener más información.

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