Cómo mostrar un dialogo de mensaje en Java (JOptionPane)

Hola y buen día a todos mis lectores, hoy veremos de nuevo un tema para principiantes en lenguaje Java, y el tema (como dice ahí arriba) es “Cómo mostrar un dialogo de mensaje en Java” para logra tal cosa usaremos la clase JOptionPane. Aquí abajo hay una imagen que muestra lo que haremos más adelante, comencemos…





Dentro de la programación, la comunicación con el usuario es una de las cosas más importantes (y a mi parecer la más importante, ya que es el fin de cualquier programa), anteriormente ya habíamos hablado de eso en otro de mis artículos, pero hoy nos centraremos específicamente en cómo mostrar diferentes tipos de mensajes, ya sea un simple aviso, un mensaje de error, de advertencia, pregunta, etc.


Mostrando un mensaje simple en la pantalla
Si lo que queremos es mostrar un mensaje de una línea fácil y rápido, aquí les va la solución:

Y lo que tenemos es:



Sencillo, ¿verdad? Como vieron, esto va dentro de algún método ya sea el main o cualquier otro, un constructor, lo que sea. Ahora, veamos algo un poco mejor, ¿y qué es mejor que un mensaje de una línea? Pues un mensaje de 2 líneas :D (o las que queramos).

Para mostrar un dialogo de varias líneas, necesitamos un salto de línea, para esto, llamaremos a una propiedad del sistema, esto será tal como dar \n en C++ y en Java es también válido, pero esta no es la forma más extensible de hacerlo ¿Por qué? Pues recordemos que Java es multiplataforma, puede que no en todos los sistemas operativos tomen esto como un salto de línea, en algunos es algo como \n\r o dependiendo, así que para no complicarnos, lo haremos de la siguiente manera:

Mostrando un mensaje de varias líneas:

Y el resultado es:




Ahora, esos son mensajes sencillos, muy útiles claro, pero JOptionPane (la clase que estamos usando) tiene aún muchos trucos bajo la manga, podemos hacer muchos tipos de diálogos de manera sencilla, como por ejemplo:


  • Dialogo de confirmación (Hace una pregunta de confirmación como Sí, No, Cancelar).
  • Dialogo de entrada (Solicita alguna entrada al usuario).
  • Dialogo de mensaje (Le comunica al usuario algo que ha pasado).
  • Dialogo de opción (Es la unificación de los otros tres).




Éstos diálogos pueden mostrarse también en un JInternalFrame, con su respectivo método showInternalXXX() pero ése no es el tema de hoy, lo veremos luego.

Ahora, hemos utilizado ya el dialogo de mensaje más simple con el método showMessageDialog(Component comp, Object msj) de JOptionPane mostramos mensajes de una y varias líneas, pero, si quieren hacer algo un poco más complejo con estos diálogos aquí les van los otros 2 métodos de JOptionPane para mostrar diálogos de mensaje:



  • showMessageDialog(Component comp, Object mensaje, String titulo, int tipoMensaje)
  • showMessageDialog(Component comp, Object mensaje, String titulo, int tipoMensaje, Icon icon)



El primer método, pide el “componente padre” (Component), en caso de que llamemos al dialogo desde un JFrame o un JPanel, podemos ponerlo como argumento, luego nos pide el mensaje (Object), ya hemos visto como se utiliza para mostrar una línea o varias, después pide el título (String) donde ponemos el título del dialogo a nuestro gusto (por si alguno todavía no se daban cuenta para qué era :P) luego el tipo de mensaje (int), esto es lo interesante, aquí podemos poner una de las constantes que ofrece JOptionPane para cambiar el icono que aparece a la izquierda del dialogo, las constantes son: PLAIN_MESSAGE,  INFORMATION_MESSAGE, QUESTION_MESSAGE, ERROR_MESSAGE y WARNING_MESSAGE, a continuación la imagen del icono que vamos a cambiar:



Y ahora un ejemplo de uso en la clase con la que hemos estado trabajando:

Al correr este código veremos 5 mensajes de dialogo (se muestra el siguiente dando click al botón “Aceptar”) con diferente icono, como se muestra en la siguiente imagen (Sin el bonito fondo verde ni el texto obviamente :P)



El segundo método que enlistamos pide lo mismo que el primero pero además podemos poner un ícono a nuestro gusto en el último argumento (Icon), en lugar de uno de los que ya vienen por parte de JOptionPane.

Me gustaría extenderme más en el uso de JOptionPane para ver los demás diálogos, como el de pregunta (muy útil) o los de entrada, pero me saldría un poco del tema de los mensajes así que si quieren saber más sobre estos diálogos les dejo la documentación de JOptionPane aquí para que experimenten por su cuenta, o esperen mi siguiente entrada, encantado de escribir para ustedes ;), saludos.



Entradas Relacionadas:
Cómo crear una GUI en Java
Cómo crear una GUI en Java - Parte 2
Aprender Java Creando un juego

Comentarios