Mensajes de Dialogo en Java Con JOptionPane - Ser Programador - Es
Mensajes de Dialogo en Java Con JOptionPane - Ser Programador - Es
BUSCAR
PUBLICIDAD
POSTS RECIENTES
Creando dialogos
personalizados en Java
con JDIalog
Algo muy común a la hora de programar, es como avisar al usuario de ciertas actividades, o como noviembre 11, 2016
hacerlo escoger para recapacitar o darle la oportunidad de elegir que es lo que se desea hacer,
Estamos de vuelta, y
para esto, en Java tenemos elementos muy sencillos pero funcionales, que nos permiten más fuertes que nunca.
mostrar mensajes de dialogo, o cuadros de dialogo, como los pre eran llamar, estos elementos octubre 31, 2016
son sumamente sencillos de utilizar con un poco de lectura al API de Java, sin embargo, como
ECMAScript 6, lo nuevo.
siempre, surgen las dudas, y para aclararlas dedicaré este post para mostrarles los diferentes
mayo 12, 2015
tipos de diálogos que podemos utilizar en Swing, bien, para esto he preparado lo siguiente
(Utilizando Netbeans como IDE): Bower, un administrador
Un proyecto con un nombre cualquiera (En este caso SerProgramador.es). de paquetes para la web
Y con esto, comencemos a trabajar, dado que existen varias formas de hacer distintos tipos de
CATEGORÍAS
cuadros de diálogo, comenzaremos a verlos uno por uno para no romper con el esquema de
trabajo, los cuadros de dialogo que veremos en este post estarán basados en el objeto Aplicaciones móviles (6)
JOptionPane, un objeto de java que nos permite precisamente trabajar con cuadros de dialog,
los métodos de este objeto que veremos, serán los siguientes: Bases de datos (3)
showMessageDialog
Control de versiones (1)
showInputDialog
Escritorio (14)
Ok, para probar esté método, lo único que haremos será crear una clase con un método main,
vamos a suponer que la clase se llama, MessageDialog:
Experiencias (22)
1 public class MessageDialog {
2
Frameworks Inicia sesión
(4)
3 public static void main(String[] args) {
Debes iniciar sesión en Facebook para enviar un mensaje
4 a la página
5 } General (71)
6 }
Bien, fácil, ahora, vamos a jugar un poco con esto, para acceder a este método simplemente Gestores de contenido (2)
tenemos que importar la clase JOptionPane, aunque normalmente netbeans lo hace por
Herramientas (5)
nosotros pondré la línea de código por cualquier cosa:
tiene 3 sobrecargas del método, uno que recibe 2 parametros, otro de 4, y otro de 5, vamos a
Javascript (9)
ver uno por uno para observar como vamos personalizando cada vez más nuestro mensaje, el
primero que veremos es el de dos parametros:
Lenguajes y (27)
1 public class MessageDialog { plataformas
2
3 public static void main(String[] args) {
Metodologías (2)
4 JOptionPane.showMessageDialog(null, "Operación realizada correc
5 }
6 Php (10)
7 }
Post (22)
Bien, explicación rápida, el primer parámetro, representa el componente padre sobre el cual el
mensaje se mostrará, si nosotros no le enviamos ninguno, como en este caso lo estamos
Python (1)
haciendo, simplemente mostrará una ventana similiar a la siguiente:
Servidores (4)
parámetros, ahora bien, cuando utilizamos el método de cuatro parámetros tenemos un poco
5 android apple
más de personalización, veamos:
autocompleter biblioteca
1 JOptionPane.showMessageDialog(null, "Mensaje dentro de la ventana", "Me
clientes conector
El funcionamiento de este método es un poco diferente, pero más útil:
debian developer
Primer Parámetro: El componente padre sobre el cual se mostrará la ventana de dialogo.
frontend gals panic
Segundo Parámetro: El mensaje que se mostrará dentro de la ventana.
gratis html html5
Tercer Parámetro: El mensaje que se mostrará en la barra de titulo. ¿Tienes alguna pregunta?
Cuarto Parámetro: Una variable Int contenida por JOptionPane, que representa el icono que iconos
Ser Programadores
icons
119 Me gusta
se mostrará en la ventana, algunos de los valores posibles son: INFORMATION_MESSAGE , imagenes instalar
WARNING_MESSAGE , QUESTION_MESSAGE , PLAIN_MESSAGE, ERROR_MESSAGE
ios
Me gusta esta página
iphone jar Compartir
jQuery juego
a la página
vamos a necesitar crear un icono personalizado, para esto, yo me e descargado una imagen de programación
50×50 que se llama “icon-pencil-png.png” y la e colocado en un paquete llamado resources
programador
dentro de mi proyecto, lo siguiente, será crear un icono, para esto, vamos a crear una clase
programadores
llamada MyIcon que implemente la interfaz Icon, el contenido de la clase será el siguiente:
programar proyecto
1 import java.awt.Component;
2 import java.awt.Graphics; proyectos Seguridad
3 import java.awt.Image;
4 import javax.swing.Icon; servidor smartphone
5 import javax.swing.ImageIcon;
swing ubuntu web
6
7 public class MyIcon implements Icon{ Windows
8
9 @Override
10 public void paintIcon(Component c, Graphics g, int x, int y) {
11 Image image = new ImageIcon(getClass().getResource("/resources
12 g.drawImage(image, x, y, c);
13 }
14
15 @Override
16 public int getIconWidth() {
17 return 50;
18 }
19
20 @Override
21 public int getIconHeight() {
22 return 50;
23 }
24
25 }
Listo, con esto tendremos nuestro icono, ya se, tanto rollo para un icono, pero bueno, somos
programadores, ahora bien, necesitaremos, antes de mostrar nuestro mensaje de dialogo, crear
una instancia de esta clase, y posteriormente, podremos utilizar el método de 5 parametros:
Si se dan cuenta, los parámetros son idénticos a los parámetros que se la pasan al método de
cuatro parámetros, solo que esta vez, existe un quinto parámetro, que nos permite enviar un
icono, proporcionando un resultado similar al siguiente:
Y listo, tenemos una manera coqueta de hacer mensajes de alerta con el showMessageDialog
😉
showInputDialog
Inicia sesión
Bien, para trabajar con el showInputDialog, vamos a crear nuevamente una clase a la cual le
Debes iniciar sesión en Facebook para enviar un mensaje
Bien, de antemano les digo que nuevamente necesitaremos el import, así que despues de
agregarlo comenzaremos a trabajar, y esta vez lo haremos más rápido ya que despues de leer la
primera parte, habrán comprendido como está la dinámica de los dialogos. El inputDialog
contiene 6 sobrecargas del método, los cuales tienen los siguientes parametros y ojo, TODOS
(Con excepción del ultimo) devuelven un String:
Método 1:
1 JOptionPane.showInputDialog(Mensaje);
Explicación: Bueno, este es el método más sencillo, sólo requiere de un parámetro, y este es el
mensaje que va a mostrar, como les comente en un principio, la mayoria de los InputDialog
devuelven un String, por consecuente, su utilización sería la siguiente:
Método 2:
Método 3:
¿Tienes alguna pregunta?
1 JOptionPane.showInputDialog(Componente padre, Mensaje);
Ser Programadores
119 Me gusta
Explicacion: Este método es muy similar al primero, la única diferencia es que este nos permite
ubicar el InputDialog sobre un componente, en este caso su utilización sería solo remplazar el
Me gusta esta página Compartir
Inicia sesión
a la página
Método 4:
Explicación: Este método es muy similar al anterior, muy sencillo de entender, el padre, el
mensaje que dirá el cuadro de dialogo y por último, un texto por defecto, con un uso como el
siguiente:
Método 5:
Explicación: Este método es algo diferente a los anteriores, aunque también incluye el padre, el
segundo parámetro representará el texto del cuadro de texto y el tercero el título de la ventana,
por ultimo, tenemos la posibilidad de enviar un parámetro tal y como lo hicimos en el
showMessageDialog para seleccionar un icono por defecto, un ejemplo de uso sería:
Método 6:
Explicación: Este es mi favorito, este método tiene algo en particular independientemente de las
opciones por default, y es que, pasandole como parametro un arreglo de objetos, que también
podemos hacer con los métodos anteriores, este método genera un JComboBox para mostrar
las posibles selecciones, es algo que me gusta, y encima de todo, nos permite pasar un icono, por
ejemplo, voy a utilizar el icono que hicimos anteriormente para el mismo ejemplo:
1 String[] carreras = {
2 "Ingeniería en sistemas computacionales",
3 "Ingeniería industrial",
¿Tienes alguna pregunta?
4 "Ingeniería en mecatrónica",
Ser Programadores
5 "Ingeniería en informatica", 119 Me gusta
6 "Ingeniería petroquímica"
7 };
8 MyIcon icon = new MyIcon(); Me gusta esta página Compartir
Inicia sesión
a la página
showCon rmDialog
Una vez que hemos dominado los métodos anteriores, utilizar un showCon rmDialog es super
sencillo, este, cuenta con cuatro sobrecargas del método, y los veremos de manera super rápida,
para esto hagamos una clase con cualquier nombre (en mi caso showCon rmDialog) y
pongamosle un método main para comenzar a trabajar, y veamos como funcionan estos
métodos:
Método 1:
Este es muy sencillo, el componente padre pues como anteriormente mencionamos es aquel
sobre el cual se mostrará el mensaje, y el mensaje es lo que dirá el mensaje, como es un dialogo
de con rmación, este, por default mostrará las opciones si, no y cancelar, y devolverá un entero
con la opción seleccionada como si estuvieramos en un vector, es decir, si seleccionamos si
retornará un cero, si es no un 1 y si es cancelar un 2, por ejemplo:
Método 2:
Este componente es un poco mas completo, las primeras dos opciones son las mismas que el
método anterior, pero agregamos tal y como antes el titulo de la ventana, y un parámetro nuevo,
el tipo de selección, es decir, que tipo de dialogo será, si es un dialogo de si y no, o si tiene las
opciones si, no y cancelar por defecto, por ejemplo:
Los posibles valores son YES_NO_OPTION o YES_NO_CANCEL_OPTION, sencillitos.
Método 3: ¿Tienes alguna pregunta?
1 JOptionPane.showConfirmDialog(Componente padre, "Mensaje", "titulo", "t
Ser Programadores
119 Me gusta
Bueno, este método es identico al anterior, solo que se le agrega el tipo de mensaje para que nos
reconozca un icono por defecto, tal y como lo hicimos con el InputDialog y el MessageDialog,
Me gusta esta página Compartir
por ejemplo:
Teniendo un resultado como el siguiente, como pueden ver, las variables que utilizamos en los
métodos del JOptionPane siempre son casi las mismas, si estan siguiente este tutorial paso a
Inicia sesión
paso, a este punto ya lo deben estar viendo super fácil, el código del método anterior sería el
Debes iniciar sesión en Facebook para enviar un mensaje
siguiente: a la página
Método 4:
Y el que nos faltaba, el método al cual podemos pasarle un icono personalizado simplemente por
estética, veamos un ejemplo con el mismo icono que programamos al principio:
Teniendo un resultado muy similar a los anteriores y funcionando igual que todos los
showCon rmDialog como pueden observar:
showOptionDialog
El método anterior, nos enseño una manera de darle a escoger al usuario mas de una opción en
una ventana de dialogo, como una manera más personalizada de hacer esto, podemos utilizar el
método showOptionDialog que nos proporciona JOptionPane, este método no tiene
sobrecarga y cuenta con los siguientes parámetros.
Los únicos que hay que dejar en claro después de leer este post son el tipo de selección, que
utilizamos un tipo de seleccion como el del showCon rmDialog, el tipo de mensaje que ya
sabemos cual es, y las opciones, que es un arreglo con las opciones que se le mostraran al
usuario y por ultimo, el valor por default, cabe destacar, que este método, devuelve un valor en
int del valor que haya seleccionado el usuario, veamos un ejemplo de esto:
componente padre, posteriormente envío el mensaje que quiero que aparezca dentro del
cuadro de dialogo, luego el titulo, luego le mando un DEFAULT_OPTION solo para que trate al
Me gusta esta página Compartir
Inicia sesión
a la página
Teniendo en cuenta lo anterior, esto signi ca, que si selecciono la opcion C por ejemplo, el valor
entero que me devolverá el método será 2, por que es la posición 2 del arreglo que enviamos
como parámetro, y lo mismo con las otras opciones. Como verán, es muy sencillo crear cuadros
de dialogo en Java, solo hay que conocer esta pequeña clase, posteriormente, blogueare algo
más llamativo, como crear cuadros de dialogo personalizados con la clase JDialog de Java, para
esto, dedicaré una entrada completa, espero les sea de ayuda. Saludos.
Únete a la conversación...
Nombre
Iván Ignacio Alvarado Díaz Moderador > Carlos Zúñiga • hace 4 años
De nada, espero te haya sido de utilidad.
△ ▽ • Responder • Compartir › Me gusta esta página Compartir
a la página
switch(resp){
case JOptionPane.YES_OPTION:
codigo
break;
case JOptionPane.NO_OPTION:
codigo
break;
case JOptionPane.CANCEL_OPTION:
codigo
break;
default:
codigo
break;
}
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > Johnatan Bustamante • hace 3 años
Muchas gracias, y claro que si, para eso estamos :D
△ ▽ • Responder • Compartir ›
Gracias!!
△ ▽ • Responder • Compartir ›
△ ▽ • Responder • Compartir ›
△ ▽ • Responder • Compartir ›
Debes iniciar sesión en Facebook para enviar un mensaje
a la página
Patricio • hace 3 años
Hola te puedo hacer una consulta?? Sabes estoy trabajando en un proyecto y estoy usando mensajes con
joptionpane y en algun momento la ventana del mensaje cambio su forma y ahora se parece mas a las de windows
,son mas redondeadas y no tan cuadradas como las que venia mostrando. Pero esto paso sin que me diera cuenta, o
sea si hice algo para que cambiara la forma de las ventanas no me di cuenta,Tenes alguna idea?
△ ▽ • Responder • Compartir ›
Si estás usando Netbeans por defecto a tus ventanas agrega un método "public static void main" donde define
el look and feel a usar.
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > Dvash kazhu • hace 3 años
Buen día Dvash Kazhu, gracias por tu comentario, habría manera de que me compartas tu proyecto via email
o github? ... para darle una revisada y apoyarte de mejor manera?
△ ▽ • Responder • Compartir ›
saludos.
△ ▽ • Responder • Compartir ›
△ ▽ • Responder • Compartir ›
a la página
Quisiera saber si hay un metodo para hacer esto posible ya que al momento de ingresar valores int marca error, pues
la estructura solo admite String.
Iván Ignacio Alvarado Díaz Moderador > Omar Topasio Chavez Anaya • hace 3 años
Hola que tal, pues realmente, puedes introducirle lo que gustes al InputDialog, solo que siempre, te va a
devolver un string, lo que debes de hacer en esta situación, si quieres guardarlo en una variable entera, es
parsearlo. Por ejemplo
De esta manera el resultado se transformaria en un entero, así mismo, considera meter un trycatch, dado que
cuando el parseInt no logra transformar el texto en un entero, lanza un error.
△ ▽ • Responder • Compartir ›
⛺
¿Tienes alguna pregunta?
△ ▽ • Responder • Compartir ›
Ser Programadores
119 Me gusta
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
Hola David, por lo que logro ver, tew hace falta un punto antes de getImage(), creo que ese es el problema.
△ ▽ • Responder • Compartir ›
Me gusta esta página Compartir
David López Peña > Iván Ignacio Alvarado Díaz • hace 2 años
Era eso, muchas gracias :D
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
Excelente, saludos. :)
△ ▽ • Responder • Compartir ›
Inicia sesión
David López Peña > Iván Ignacio Alvarado Díaz • hace 2 años Debes iniciar sesión en Facebook para enviar un mensaje
⛺
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
Desde que actualizamos el blog no me habia fijado que se desalinearon las imagenes xD ....
tienes ese error, por que el número de parametros que estas pasando, no es el adecuado,
necesitas pasar dos parametros más en esa funcion por lo que alcanzo a ver ( es que no tengo
el netbeans a la mano), necesitas pasarle un array y el elemento que está seleccionado por
defecto, intenta pasarle, null en los ultimos parámetros y nos comentas los resultados.
△ ▽ • Responder • Compartir ›
David López Peña > Iván Ignacio Alvarado Díaz • hace 2 años
Todo bien hasta que...
⛺
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
Pues hoy si que, como dice allá, MyIcon, linea 13, tienes que revisar,a lo mejor no estás
cargando algo y llega con valor nulo.
△ ▽ • Responder • Compartir ›
David López Peña > Iván Ignacio Alvarado Díaz • hace 2 años
Ya me funcionó, cambie el formato de la imagen a jpg y puse los parámetros del arreglo y del int
por defecto. Muchas gracias :)
⛺
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
Excelente, un placer ser de ayuda, saludos.
△ ▽ • Responder • Compartir ›
Iván Ignacio Alvarado Díaz Moderador > David López Peña • hace 2 años
De nada para eso estamos.
△ ▽ • Responder • Compartir ›
tenemos el mismo error porfavor pon el codigo completo seria de gran ayuda
△ ▽ • Responder • Compartir ›
a la página
API para obtener el clima Referencias en Java POO
3 comentarios • hace 4 años 2 comentarios • hace 4 años
Mxrck — Desafortunadamente a mashape la han tragado, potatomine — Muchas gracias por la explicación clara y
y el nuevo servicio realmente no me gusta, espero tener un sencilla.
poco de tiempo y liberar el código fuente que obtiene el …
✉ Suscríbete d Añade Disqus a tu sitio webAñade Disqus Añadir 🔒 Disqus' Privacy PolicyPolítica de privacidadPrivacidad
Anterior Siguiente
Usando un JList para almacenar objetos – Java Como conectar y utilizar Java con SQLite
Swing