Interfaz Gráfica de Usuario

Componentes Básicos de Swing

Aprende sobre los componentes básicos de Swing para construir interfaces gráficas en Java.

En esta sección, exploraremos los componentes básicos de Swing que utilizaremos para construir interfaces gráficas en Java. Swing ofrece una amplia variedad de componentes que nos permiten crear aplicaciones interactivas y atractivas. A continuación, se describen algunos de los componentes más comunes y su uso.

JComponent

La clase JComponent es la clase base para todos los componentes de Swing. Todos los componentes visuales de Swing, como botones, etiquetas, campos de texto, etc., heredan de JComponent. Esta clase proporciona métodos para personalizar la apariencia y el comportamiento de los componentes, como establecer colores, fuentes, bordes, entre otros. Aunque no se utiliza directamente para crear componentes, es importante entender que todos los componentes de Swing son subclases de JComponent.

JFrame

La clase JFrame es la ventana principal de una aplicación Swing. Es el contenedor que alberga todos los demás componentes de la interfaz gráfica. Podemos crear un JFrame utilizando el siguiente código:

import javax.swing.JFrame;

public class MyFrame {
    void main(String[] args) {
        JFrame frame = new JFrame("Mi Primera Ventana");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Dentro del JFrame, podemos agregar otros componentes para construir nuestra interfaz, este componente no existe en la paleta de componentes, ya que es el contenedor principal, sin embargo, es imperativo conocer su funcionamiento, ya que todos los demás componentes deben ser añadidos a un JFrame o a otros contenedores.

JPanel

La clase JPanel es un contenedor que nos permite agrupar otros componentes dentro de un JFrame. Podemos utilizar JPanel para organizar la disposición de los componentes en nuestra interfaz gráfica. Aquí hay un ejemplo de cómo usar JPanel:

import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyPanel {
    void main(String[] args) {
        JFrame frame = new JFrame("Ventana con Panel");
        JPanel panel = new JPanel();
        
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Como dato importante, los JPanel son componentes que sí se encuentran en la paleta de componentes del plugin "Swing UI Designer" en IntelliJ IDEA, lo que facilita su uso para organizar otros componentes visualmente, además de que al crear un nuevo formulario, este se crea como un JPanel por defecto que puedes luego añadir a un JFrame de la siguiente manera:

Crea un Nuevo Formulario

En un proyecto Java en IntelliJ IDEA, selecciona "File" > "New" > "Swing UI Form". Esto abrirá una ventana para crear un nuevo formulario Swing.

Es importante que se seleccione la opción "Create bound class" para que se genere automáticamente la clase Java asociada al formulario.

Nombrando el Panel

Al crear el formulario, se generará un archivo .form y una clase Java asociada. Primero trabajaremos en el archivo .form, que representa un JPanel que aún no tiene componentes, nombre y tampoco está asociado a un JFrame.

Como puedes notar en la imagen, el formulario se llama está vinculado a una clase, en este caso MyApp, pero él JPanel dentro del formulario no tiene un nombre específico. Para asignarle un nombre, selecciona él JPanel y en la sección de propiedades (a la derecha), busca la propiedad "field name" y asígnale un nombre, por ejemplo, mainPanel.

Una vez que hayas nombrado podemos pasar a la clase Java para añadir el JPanel a un JFrame.

Añadiendo el JPanel a un JFrame

Si ahora damos doble clic en la clase Java vinculada al formulario, podemos ver el código generado automáticamente y si hemos seguido los pasos anteriores, podemos ver que el JPanel tiene el nombre que le asignamos, en este caso mainPanel, de esta forma:

import javax.swing.*;

public class MyApp {
    private JPanel mainPanel;
}

Para mostrar este JPanel dentro de un JFrame, podemos crear un nuevo JFrame en el método main de la clase Java y añadir el mainPanel al JFrame, de la siguiente manera:

import javax.swing.*;

public class MyApp {
    private JPanel mainPanel;

    void main() {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("My Application");
            frame.setContentPane(mainPanel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400,400);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        });
    }
}

Con estos pasos, hemos creado un JPanel utilizando el plugin "Swing UI Designer" en IntelliJ IDEA y lo hemos añadido a un JFrame para mostrarlo como una ventana de nuestra aplicación Swing. Ahora podemos comenzar a agregar otros componentes al JPanel para construir nuestra interfaz gráfica.

Más adelante exploraremos cada una de estas líneas de código en detalle, pero por ahora, este es un vistazo general de los componentes básicos de Swing que utilizaremos para construir nuestras interfaces gráficas en Java.

JButton

El JButton es un componente que representa un botón en la interfaz gráfica. Podemos crear un botón y agregarlo a un JPanel de la siguiente manera:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyButton {
    void main(String[] args) {
        JFrame frame = new JFrame("Ventana con Botón");
        JPanel panel = new JPanel();
        JButton button = new JButton("Haz Clic Aquí");
        
        panel.add(button);
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Toma en cuenta que el botón no realizará ninguna acción al hacer clic en él, ya que aún no hemos agregado un listener de eventos. Más adelante aprenderemos cómo manejar eventos en Swing.

Así mismo, él JButton es un componente que se encuentra en la paleta de componentes del plugin "Swing UI Designer" en IntelliJ IDEA, lo que facilita su uso para agregar botones a nuestras interfaces gráficas de manera visual.

JLabel

El JLabel es un componente que se utiliza para mostrar texto o imágenes en la interfaz gráfica. Podemos crear una etiqueta y agregarla a un JPanel de la siguiente manera:

import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyLabel {
    void main(String[] args) {
        JFrame frame = new JFrame("Ventana con Etiqueta");
        JPanel panel = new JPanel();
        JLabel label = new JLabel("¡Hola, Mundo!");
        
        panel.add(label);
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

El JLabel también está disponible en la paleta de componentes del plugin "Swing UI Designer" en IntelliJ IDEA, lo que facilita su uso para agregar etiquetas a nuestras interfaces gráficas de manera visual.

JTextField

El JTextField es un componente que permite al usuario ingresar texto en la interfaz gráfica. Podemos crear un campo de texto y agregarlo a un JPanel de la siguiente manera:

import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyTextField {
    void main(String[] args) {
        JFrame frame = new JFrame("Ventana con Campo de Texto");
        JPanel panel = new JPanel();
        JTextField textField = new JTextField(20); // 20 columnas
        
        panel.add(textField);
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

El JTextField también está disponible en la paleta de componentes del plugin "Swing UI Designer" en IntelliJ IDEA, lo que facilita su uso para agregar campos de texto a nuestras interfaces gráficas de manera visual.

Estos son solo algunos de los componentes básicos de Swing que utilizaremos para construir nuestras interfaces gráficas en Java. A medida que avancemos en el curso, exploraremos más componentes y aprenderemos cómo personalizarlos y manejarlos para crear aplicaciones interactivas y atractivas.

En las siguientes secciones, profundizaremos en cada uno de estos componentes y aprenderemos cómo utilizarlos de manera efectiva en nuestras aplicaciones Swing.

Copyright Jesús Aurelio Castro Magaña © 2026