Contenedores en Swing
Contenedores en Swing
Dentro de Swing, los contenedores son componentes especiales que pueden contener otros
componentes, como botones, etiquetas, cuadros de texto, etc.
Cada contenedor tiene un propósito específico. Algunos permiten crear ventanas completas,
mientras que otros sirven para organizar los elementos dentro de una ventana.
En la siguiente tabla, se comparan los contenedores más utilizados en Swing, detallando sus
características y usos principales.
Tabla Comparativa de Contenedores en Swing
¿Uso
¿Puede ¿Admite ¿Tiene ¿Permite
independiente o Ejemplo de
Contenedor Descripción Uso Principal contener otros barra de decoraciones ser
dentro de otra uso
componentes? menú? de ventana? modal?
ventana?
Sí (barra de
Ventana principal Crear título, new
Sí
JFrame de una aplicación aplicaciones con Sí minimizar, No Independiente JFrame("Mi
(JMenuBar)
Swing. interfaz gráfica. maximizar, Ventana");
cerrar)
Mostrar Puede ser new
Sí, pero más
Ventana de mensajes, independiente o JDialog(frame,
JDialog Sí No simple que Sí
diálogo auxiliar. formularios o estar dentro de "Diálogo",
JFrame
confirmaciones. un JFrame true);
Agrupar y Siempre dentro
Contenedor organizar de otro
JPanel genérico sin componentes Sí No No No contenedor new JPanel();
bordes. dentro de otro (JFrame, JDialog,
contenedor. etc.)
Contenedor para
Se ejecuta public class
incrustar en un Aplicaciones en
dentro de un MiApplet
JApplet navegador web navegadores Sí No No No
navegador o extends
(obsoleto desde web.
JAppletsViewer JApplet {}
Java 9).
Ventana interna Crear interfaces Sí (como
Siempre dentro
dentro de otra con múltiples Sí JFrame, pero
JInternalFrame Sí No de un
ventana ventanas (JMenuBar) dentro de la
JDesktopPane
(JDesktopPane). internas. aplicación)
Contenedores adicionales en Swing
import javax.swing.*;
frame.add(tabbedPane);
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
2. JSplitPane – Panel con división ajustable
import javax.swing.*;
frame.add(splitPane);
frame.setSize(500, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
3. JScrollPane – Panel con barra de desplazamiento
import javax.swing.*;
frame.add(scrollPane);
frame.setSize(400, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
import javax.swing.*;
frame.add(toolBar, "North");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
5. JLayeredPane – Panel con capas superpuestas
import javax.swing.*;
public class EjemploLayeredPane {
public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JLayeredPane");
layeredPane.add(fondo, JLayeredPane.DEFAULT_LAYER);
layeredPane.add(mensaje, JLayeredPane.PALETTE_LAYER);
frame.add(layeredPane);
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
6. JDesktopPane y JInternalFrame – Ventanas internas
import javax.swing.*;
desktopPane.add(internalFrame);
frame.add(desktopPane);
frame.setSize(500, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Cuadros de Diálogo Estándar (JOptionPane)
Los cuadros de diálogo son ventanas emergentes que permiten interactuar con el usuario de
manera sencilla y efectiva. Se utilizan para:
En Swing, la clase principal para trabajar con cuadros de diálogo es JOptionPane, que proporciona
métodos estáticos para crear distintos tipos de ventanas emergentes sin necesidad de diseñarlas
desde cero.
A continuación, veremos ejemplos prácticos de cada tipo de cuadro de diálogo para aprender a
usarlos correctamente.
JOptionPane es una clase muy útil para mostrar mensajes al usuario sin necesidad de diseñar una
ventana desde cero. Proporciona métodos estáticos para mostrar diferentes tipos de cuadros de
diálogo:
Método en
Tipo de Diálogo Descripción
JOptionPane
Muestra un mensaje informativo, de error o
Mensaje simple showMessageDialog()
advertencia.
Pide al usuario que confirme una acción
Confirmación showConfirmDialog()
(Sí/No, Aceptar/Cancelar).
Entrada de texto showInputDialog() Solicita al usuario que ingrese un dato.
Selección Permite personalizar los botones y opciones
showOptionDialog()
personalizada del cuadro de diálogo.
Este método se usa para mostrar información al usuario, como una notificación o alerta.
import javax.swing.JOptionPane;
import javax.swing.JOptionPane;
if (opcion == JOptionPane.YES_OPTION) {
System.out.println("El usuario eligió salir.");
} else {
System.out.println("El usuario canceló la salida.");
}
}
}
Opciones posibles:
import javax.swing.JOptionPane;
public class EjemploInputDialog {
public static void main(String[] args) {
String nombre = JOptionPane.showInputDialog("Ingrese su
nombre:");
import javax.swing.JOptionPane;
if (seleccion != -1) {
System.out.println("Nivel seleccionado: " +
opciones[seleccion]);
} else {
System.out.println("El usuario cerró la ventana sin
elegir.");
}
}
}
Parámetros importantes: