Formación informática

Java | Joomla | MySQL

Curso de Java – Tema 16: Clase JOptionPane

Persona usando ordenador

Para acceder a su definición oficial en la API de Java 8 tenemos que pulsar sobre este enlace.

¿Qué es y cuándo se usa?

Es una clase de la biblioteca Swing que se usa para mostrar cuadros de diálogo emergentes cuando se están desarrollando aplicaciones con interfaces gráficas. El motivo puede ser para pedir la introducción de datos o informar de alguna cosa.

Aunque puede utilizarse también cuando se realicen aplicaciones interactivas a través de la línea de comandos, no parece muy útil ni cabal mezclar dos formas tan distintas de tratar los datos. Así, que es mejor no mezclar ambas formas.

¿Cómo se usa?

El primer paso necesario es realizar la importación de la clase:

CODIGO

Los principales métodos de esta clase son estáticos. Por lo tanto, no es necesario realizar una instanciación del objeto para usarlos. Existen cuatro métodos con una sobrecarga enorme que bloquean al objeto que los ha llamado hasta que se produce la interacción con el usuario:

  • Con los métodos showConfirmDialog se muestra una ventana emergente que pide confirmar una elección con sí, no o cancelar.
  • Con los métodos showInputDialog se muestra una ventana emergente para introducir datos y se usa junto con variables.
  • Con los métodos showMessageDialog() se muestra una ventana emergente con un mensaje sobre algo que ha sucedido.
  • Con los métodos showOptionDialog se consigue mostrar una ventana que aúna los tres anteriores. Java lo llama “la Gran Unificación”.

La apariencia básica de una ventana emergente consta de 4 bloques en los que se aloja un icono, un mensaje, el valor de entrada y los botones de acciones. Además, puede incluirse un título para la ventana.

 

Distribución estándar de una ventana emergente en Java

 

Cómo se usa

En función del tipo de ventana emergente que queramos usar tenemos que usar un método u otro.

showMessageDialog

Este tipo de ventana emergente tiene diversas presentaciones en función del número de parámetros que usemos y se usa para mostrar mensajes al usuario.

Aspecto por defecto

El cuadro de diálogo por defecto consta de un mensaje y un símbolo de exclamación. Para mostrarlo tenemos que usar el método constructor con 2 parámetros. La sintaxis genérica es:

CODIGO

Para mostrarlo sobre la ventana del programa:

CODIGO

 

Aspecto por defecto de una ventana emergente informativa en Java

 

Eligiendo el tipo de icono

Para cambiar el icono entre una selección de un listado incluido en la clase, tenemos que usar el método constructor con 4 parámetros. El primer parámetro es el componente padre sobre el cual se mostrará la ventana de dialogo; el segundo es el mensaje que se mostrará dentro de la ventana; el tercero es el mensaje que se mostrará en la barra de título; y, por último, una variable Int contenida por JOptionPane que representa el icono que se mostrará en la ventana y que tomará algunos de los valores siguientes: INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, PLAIN_MESSAGE, ERROR_MESSAGE. La sintaxis genérica es:

CODIGO

 Con icono personalizado

Si queremos podemos introducir un icono personalizado. Para ello lo primero que tenemos que hacer es crear una imagen en formato png con un tamaño recomendado de 50×50 pixeles y con canal alfa activado para tener transparencia. Este archivo lo guardaremos en un paquete llamado resources o recursos dentro de nuestro proyecto. Para usar el icono personalizado necesitamos importar la clase ImageIcon. La sintaxis genérica es:

CODIGO

Siendo un ejemplo este en el que se añade el logo de Linux mint.

CODIGO

En esta imagen tienes cómo se muestra cada tipo de ventana usando la misma cadena de caracteres para el título de la ventana y el mensaje, excepto el personalizado que tiene unos parámetros distintos.

 

Aspecto de todos los tipos de ventanas emergentes informativos en Java

 

showImputDialog

Cuando necesitemos pedir información de cualquier tipo al usuario tenemos que usar un cuadro de este tipo para introducir el dato en una variable para almacenar el valor introducido. Hay que tener en cuenta que devuelven siempre un String, teniendo que realizar la conversión oportuna cuando se trabaje con números.

Por defecto

La sintaxis genérica es:

CODIGO

Y un ejemplo práctico es:

CODIGO

 

JOPTIONPANE-SHOW INPUT PREGUNTA

 

Con valor por defecto

Si queremos introducir un cadena de caracteres que aparezca en el campo de texto del cuadro de diálogo cuando se abra, tenemos que usar el método con tres parámetros. El primero es el texto a mostrar y el segundo el valor por defecto. La sintaxis genérica es:

CODIGO

Y un ejemplo es:

CODIGO

Cambiar el icono

En esta ventana emergente también se puede elegir el icono a mostrar dentro de unos disponibles en Java, que son los mismos que en el cuadro de diálogo informativo. Para ello usamos el constructor con cuatro parámetros. El primero es el componente padre; el segundo representará el texto a mostrar en el cuadro de texto; el tercero es el título de la ventana; y, por último, tenemos la posibilidad de enviar un parámetro tal y como lo hicimos en el showMessageDialog para seleccionar un icono por defecto. La sintaxis genérica sería:

CODIGO

Siendo un ejemplo éste:

CODIGO

ComboBox

Si queremos crear un cuadro combinado con valores para seleccionar, tenemos que usar el método con 6 parámetros. Pasándole como parámetro un arreglo de objetos generamos un JComboBox para mostrar las posibles selecciones:

CODIGO

Un ejemplo de uso sería este para crear un cuadro combinado que nos permita elegir entre varias distribuciones Linux:

CODIGO

En esta imagen puedes ver cómo se muestran:

 

Aspecto de todas las ventanas emergentes de introducción de datos en Java

 

showConfirmDialog

En ocasiones tenemos que realizar preguntas al usuario para obtener una respuesta con varias opciones del tipo sí, no o cancelar. U otras personalizadas. Devuelve siempre un valor entero equivalente a la posición pulsada, comenzando por el cero.

Por defecto

Por defecto mostrará las opciones sí, no y cancelar, y devolverá un entero con la opción seleccionada. Por lo tanto, si seleccionamos sí retornará un cero, si es no un uno y si es cancelar un dos. La sintaxis genérica es:

CODIGO

En ejemplo sería éste:

CODIGO

Con título de la ventana y dos opciones

Si queremos dar a la ventana un título personalizado, la sintaxis genérica es:

CODIGO

Y un ejemplo sería éste:

CODIGO

JOPTIONPANE-SHOW CONFIRM DIALOGOG 2 OPCIONES

Con opciones e icono personalizado

Podemos mostrar tanto opciones como un icono personalizado. Para ello necesitamos un array que almacene los valores que se convertirán en botones al usar el método con ocho parámetros. La sintaxis genérica es:

CODIGO

Un ejemplo sería este para elegir entre varias distribuciones de Linux:

CODIGO

JOPTIONPANE-SHOW OPTION DIALOG PERSONALIZADO

Curso de Java – Tema 15: clase BufferedReader <- | -> Curso de Java – Tema 17: Clase Integer
Curso de Java - Índice ejercicios nivel básico

Escribir un comentario

Aunque los comentarios no expresan la opinión del administrador del sitio web, éste si que tiene una responsabilidad legal sobre lo que aparece. Por lo tanto, habrá una labor de moderación de los mensajes. No se permitirán mensajes ofensivos ni publicidad


Código de seguridad
Refescar

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-Ley 13/2012, de 30 de marzo. Si continúa navegando consideramos que acepta el uso de cookies. . Más información