Interfaz Gráfica de Usuario

El componente JPanel

Aprende a usar el componente JPanel en Java Swing para organizar otros componentes gráficos.

El componente JPanel en Java Swing es un contenedor ligero que se utiliza para agrupar otros componentes gráficos. Es especialmente útil para organizar la interfaz de usuario en secciones lógicas y aplicar diferentes diseños a cada sección.

Creación de un JPanel

Para crear un JPanel, simplemente instancias la clase JPanel:

JPanel panel = new JPanel();

Agregar componentes a un JPanel

Puedes agregar otros componentes a un JPanel utilizando el método add(). Por ejemplo:

JPanel panel = new JPanel();
JButton button = new JButton("Click Me");
panel.add(button);

Establecer un Layout

El JPanel utiliza un administrador de diseño (layout manager) para organizar los componentes que contiene. El layout por defecto es FlowLayout, pero puedes cambiarlo a otros layouts como BorderLayout, GridLayout, etc. Aquí hay un ejemplo de cómo establecer un layout diferente:

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JButton buttonNorth = new JButton("North");
JButton buttonSouth = new JButton("South");
panel.add(buttonNorth, BorderLayout.NORTH);
panel.add(buttonSouth, BorderLayout.SOUTH);

Más adelante, veremos de forma más detallada los diferentes tipos de layouts disponibles en Swing.

Uso de JPanel en un JFrame

El JPanel se utiliza comúnmente dentro de un JFrame para organizar la interfaz gráfica. Aquí tienes un ejemplo completo que muestra cómo usar un JPanel dentro de un JFrame:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;

public class JPanelExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Ejemplo de JPanel");
        JPanel panel = new JPanel();
        
        // Establecer un layout para el panel
        panel.setLayout(new BorderLayout());
        
        // Agregar botones al panel
        JButton buttonNorth = new JButton("North");
        JButton buttonSouth = new JButton("South");
        panel.add(buttonNorth, BorderLayout.NORTH);
        panel.add(buttonSouth, BorderLayout.SOUTH);
        
        // Agregar el panel al frame
        frame.add(panel);
        
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

En este ejemplo, hemos creado un JFrame que contiene un JPanel. El panel utiliza un BorderLayout para organizar dos botones en la parte superior e inferior del panel.

Atributos adicionales

La clase JPanel también permite establecer atributos adicionales como el color de fondo, bordes, y más. Para ser más específico, puedes usar métodos como setBackground(Color color) para cambiar el color de fondo del panel, ahora veamos los métodos para personalizar tu JPanel:

  • setBackground(Color color): Cambia el color de fondo del panel.
  • setBorder(Border border): Establece un borde alrededor del panel. Tomando en cuenta que los bordes pueden ser creados usando la clase BorderFactory, usando métodos como createLineBorder(Color color) o createEmptyBorder(int top, int left, int bottom, int right) o bien crear bordes con estilos más complejos.
  • setPreferredSize(Dimension dimension): Define el tamaño preferido del panel.
  • setOpaque(boolean isOpaque): Define si el panel es opaco o transparente. Esto es especialmente útil cuando se trabaja con colores de fondo y superposiciones.
  • setLayout(LayoutManager layout): Establece el administrador de diseño para el panel, permitiendo una organización personalizada de los componentes dentro del panel.
Copyright Jesús Aurelio Castro Magaña © 2026