0% encontró este documento útil (0 votos)
5 vistas9 páginas

Contenedores en Swing

El documento describe los tipos de contenedores en Swing, que se dividen en contenedores de nivel superior como JFrame y JDialog, y contenedores intermedios como JPanel y JInternalFrame. También se presentan contenedores adicionales como JTabbedPane y JScrollPane, junto con ejemplos de uso de cada uno. Además, se explica el uso de cuadros de diálogo estándar mediante JOptionPane para interactuar con el usuario, incluyendo mensajes, confirmaciones y entradas de datos.

Cargado por

Javier
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas9 páginas

Contenedores en Swing

El documento describe los tipos de contenedores en Swing, que se dividen en contenedores de nivel superior como JFrame y JDialog, y contenedores intermedios como JPanel y JInternalFrame. También se presentan contenedores adicionales como JTabbedPane y JScrollPane, junto con ejemplos de uso de cada uno. Además, se explica el uso de cuadros de diálogo estándar mediante JOptionPane para interactuar con el usuario, incluyendo mensajes, confirmaciones y entradas de datos.

Cargado por

Javier
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Tipos de contenedores en Swing

Dentro de Swing, los contenedores son componentes especiales que pueden contener otros
componentes, como botones, etiquetas, cuadros de texto, etc.

Existen dos tipos principales de contenedores:

1. Contenedores de nivel superior: Son ventanas principales que pueden existir de


manera independiente, como JFrame y JDialog.

2. Contenedores intermedios: Son usados dentro de otros contenedores para organizar


los componentes, como JPanel y JInternalFrame.

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

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

Contenedor Descripción Uso Principal


JTabbedPane Permite organizar contenido en Crear interfaces con múltiples secciones sin
pestañas. sobrecargar la ventana.
JSplitPane Divide la interfaz en dos paneles Crear áreas de trabajo con contenido
ajustables. dividido (ej. exploradores de archivos).
JScrollPane Agrega barras de desplazamiento Mostrar grandes volúmenes de texto, listas
a componentes grandes. o tablas.
JToolBar Barra de herramientas con Crear accesos directos a funciones
botones o accesos rápidos. frecuentes.
JLayeredPane Permite colocar componentes en Superponer elementos como ventanas
diferentes capas (z-index). emergentes o efectos gráficos.
JDesktopPane Contenedor para múltiples Crear interfaces de tipo MDI (Multiple
ventanas internas. Document Interface).

Ejemplo de uso de cada uno

1. JTabbedPane – Panel con pestañas

import javax.swing.*;

public class EjemploTabbedPane {


public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JTabbedPane");
JTabbedPane tabbedPane = new JTabbedPane();

tabbedPane.addTab("Pestaña 1", new JLabel("Contenido de la


pestaña 1"));
tabbedPane.addTab("Pestaña 2", new JLabel("Contenido de la
pestaña 2"));

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.*;

public class EjemploSplitPane {


public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JSplitPane");

JTextArea izquierda = new JTextArea("Panel Izquierdo");


JTextArea derecha = new JTextArea("Panel Derecho");
JSplitPane splitPane = new
JSplitPane(JSplitPane.HORIZONTAL_SPLIT, izquierda, derecha);
splitPane.setDividerLocation(200);

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.*;

public class EjemploScrollPane {


public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JScrollPane");

JTextArea textArea = new JTextArea(10, 30);


JScrollPane scrollPane = new JScrollPane(textArea);

frame.add(scrollPane);
frame.setSize(400, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

4. JToolBar – Barra de herramientas

import javax.swing.*;

public class EjemploToolBar {


public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JToolBar");

JToolBar toolBar = new JToolBar();


JButton btnGuardar = new JButton("Guardar");
JButton btnAbrir = new JButton("Abrir");
toolBar.add(btnGuardar);
toolBar.add(btnAbrir);

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

JLayeredPane layeredPane = new JLayeredPane();


JLabel fondo = new JLabel(new ImageIcon("fondo.jpg"));
fondo.setBounds(0, 0, 400, 300);

JLabel mensaje = new JLabel("Mensaje en la capa superior");


mensaje.setBounds(100, 100, 200, 50);

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.*;

public class EjemploDesktopPane {


public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo de JDesktopPane");
JDesktopPane desktopPane = new JDesktopPane();

JInternalFrame internalFrame = new JInternalFrame("Ventana


Interna", true, true, true, true);
internalFrame.setSize(200, 150);
internalFrame.setVisible(true);

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:

 Mostrar información (mensajes de éxito, advertencias o errores).


 Solicitar confirmaciones antes de realizar acciones importantes.
 Recoger datos ingresados por el usuario.
 Ofrecer opciones personalizadas en lugar de botones estándar.

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.

Estos cuadros de diálogo pueden dividirse en cuatro categorías:

1. Mensajes informativos (showMessageDialog) → Para mostrar información o alertas.


2. Confirmaciones (showConfirmDialog) → Para pedir al usuario que confirme una acción.
3. Entrada de datos (showInputDialog) → Para solicitar información mediante un campo de
texto.
4. Opciones personalizadas (showOptionDialog) → Para crear cuadros de diálogo con
botones personalizados.

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.

1. showMessageDialog() – Mostrar un mensaje simple

Este método se usa para mostrar información al usuario, como una notificación o alerta.

Ejemplo: Mensaje informativo

import javax.swing.JOptionPane;

public class EjemploMessageDialog {


public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Operación completada con
éxito", "Información", JOptionPane.INFORMATION_MESSAGE);
}
}
Parámetros:

 null → La ventana padre (si es null, el mensaje aparece en el centro de la pantalla).

 "Operación completada con éxito" → Mensaje a mostrar.

 "Información" → Título de la ventana.

 JOptionPane.INFORMATION_MESSAGE → Tipo de icono (ERROR_MESSAGE,


WARNING_MESSAGE, QUESTION_MESSAGE, etc.).

2. showConfirmDialog() – Confirmación (Sí/No, Aceptar/Cancelar)

Este método pregunta al usuario si quiere continuar con una acción.

Ejemplo: Confirmar salida de la aplicación

import javax.swing.JOptionPane;

public class EjemploConfirmDialog {


public static void main(String[] args) {
int opcion = JOptionPane.showConfirmDialog(null, "¿Desea salir
de la aplicación?", "Confirmación", JOptionPane.YES_NO_OPTION);

if (opcion == JOptionPane.YES_OPTION) {
System.out.println("El usuario eligió salir.");
} else {
System.out.println("El usuario canceló la salida.");
}
}
}
Opciones posibles:

 JOptionPane.YES_NO_OPTION → Botones "Sí" y "No".

 JOptionPane.YES_NO_CANCEL_OPTION → Botones "Sí", "No" y "Cancelar".

 JOptionPane.OK_CANCEL_OPTION → Botones "Aceptar" y "Cancelar".

3. showInputDialog() – Entrada de datos

Este método permite al usuario introducir información en un cuadro de texto.

Ejemplo: Pedir el nombre del usuario

import javax.swing.JOptionPane;
public class EjemploInputDialog {
public static void main(String[] args) {
String nombre = JOptionPane.showInputDialog("Ingrese su
nombre:");

if (nombre != null) { // Si el usuario no presionó "Cancelar"


System.out.println("Nombre ingresado: " + nombre);
} else {
System.out.println("El usuario canceló la entrada.");
}
}
}
Este cuadro de diálogo tiene un campo de texto donde el usuario puede escribir.

4. showOptionDialog() – Selección personalizada

Permite personalizar los botones que aparecen en el cuadro de diálogo.

Ejemplo: Seleccionar un nivel de dificultad

import javax.swing.JOptionPane;

public class EjemploOptionDialog {


public static void main(String[] args) {
String[] opciones = {"Fácil", "Medio", "Difícil"};

int seleccion = JOptionPane.showOptionDialog(


null,
"Seleccione el nivel de dificultad:",
"Nivel de Juego",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
opciones,
opciones[0]
);

if (seleccion != -1) {
System.out.println("Nivel seleccionado: " +
opciones[seleccion]);
} else {
System.out.println("El usuario cerró la ventana sin
elegir.");
}
}
}
Parámetros importantes:

 opciones → Un array de String con los botones personalizados.


 opciones[0] → Botón por defecto seleccionado.

 JOptionPane.QUESTION_MESSAGE → Muestra un icono de pregunta.

También podría gustarte