Content-Type: application/x-php Hacer una ventana en Java con JFrame paso a paso | Línea de Código

Java Swing

Hacer una ventana en Java con JFrame paso a paso

Empieza con una ventana mínima, añade un componente y comprueba pack, cierre y ejecución en el hilo correcto.

Tipo: Guía práctica Lectura: 4 min Actualizado: 2026-06-03
Ventana Java Swing con JFrame, content pane, pack y operación de cierre.

Swing

Qué necesitas para ver una ventana

Para hacer una ventana en Java puedes usar Swing y la clase JFrame. JFrame representa una ventana principal: tiene título, borde, botón de cierre y un content pane donde se añaden los componentes.

La primera prueba debe ser pequeña. Si añades menús, paneles propios y eventos desde el principio, será más difícil saber si el problema está en la ventana o en el contenido.

Ejemplo mínimo con JFrame

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class VentanaBasica {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            JFrame frame = new JFrame("Mi primera ventana");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(new JLabel("Hola desde Swing"));
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        });
    }
}

El orden importa: primero creas el JFrame, configuras el cierre, añades contenido, llamas a pack y finalmente haces visible la ventana. Si llamas a setVisible antes de añadir componentes, puedes ver una ventana vacía o con tamaño incorrecto.

Comprueba tu JFrame

Herramienta

Checklist para JFrame

Comprueba los detalles que suelen hacer que una ventana Java no aparezca o se cierre mal.

Pasos para ampliar el ejemplo

  1. Sustituye el JLabel por un JPanel con layout si necesitas más componentes.
  2. Usa pack después de añadir los componentes para calcular tamaño preferido.
  3. Cambia EXIT_ON_CLOSE por DISPOSE_ON_CLOSE si la ventana no debe cerrar toda la aplicación.
  4. Mantén la creación de la interfaz dentro de EventQueue.invokeLater.
  5. Si el contenido no aparece, revisa que lo añadiste al frame o al panel correcto.

Errores frecuentes con JFrame

Síntoma Causa probable Qué revisar
No aparece la ventana No se llamó a setVisible(true) Coloca setVisible al final
Ventana demasiado pequeña No hay componentes o falta pack/setSize Añade contenido y llama a pack
La app no termina al cerrar Operación de cierre incorrecta Usa EXIT_ON_CLOSE en ejemplos simples
Componentes desordenados Falta layout en el panel Usa BorderLayout, FlowLayout o GridLayout según el caso

Swing, AWT y JavaFX

Swing sigue siendo útil para aprender ventanas de escritorio clásicas y para mantener aplicaciones existentes. JFrame pertenece a Swing, que se apoya en AWT para muchas piezas de ventana y eventos.

Si empiezas un proyecto nuevo de interfaz moderna, también puedes valorar JavaFX. Para entender ejemplos antiguos, exámenes o herramientas internas, JFrame sigue apareciendo mucho y conviene dominar el caso mínimo.

Preguntas frecuentes

¿Necesito extender JFrame?

No para empezar. Puedes crear un JFrame dentro del main y pasarle componentes. Extender JFrame solo tiene sentido si encapsulas una ventana completa.

¿Por qué se usa EventQueue.invokeLater?

Swing debe crear y actualizar la interfaz en el hilo de eventos. invokeLater coloca esa creación en el lugar correcto.

¿pack o setSize?

pack calcula el tamaño según componentes. setSize sirve para pruebas rápidas, pero en interfaces reales pack suele ser más limpio.

Fuentes consultadas

Fuentes y referencias

Consulta referencias útiles para ampliar o contrastar esta guía.

Marcos Vidal

Autora de la guia

Marcos Vidal

Editor de guías de programación práctica

Prepara ejemplos y explicaciones de PHP, Java y JavaScript para que cada snippet se pueda probar, adaptar y mantener con menos dudas.

Credenciales: Experiencia editorial en tutoriales técnicos, revisión de snippets y documentación para estudiantes de programación.

Experiencia: Trabaja con ejemplos mínimos, pruebas manuales y listas de comprobación para reducir errores de integración.

Actualizado: 2026-06-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.