Escolar Documentos
Profissional Documentos
Cultura Documentos
Existen varias formas de hacer distintos tipos de cuadros de dilogo, comenzaremos a verlos
uno por uno para no romper con el esquema de trabajo, los cuadros de dialogo que veremos
en este post estarn basados en el objeto JOptionPane, un objeto de java que nos permite
precisamente trabajar con cuadros de dialog, los mtodos de este objeto que veremos, sern
los siguientes:
showMessageDialog
showInputDialog
showConfirmDialog
showOptionDialog
De antemano les comento que la entrada la ir actualizando hasta terminarla, pero por lo
pronto ya tenemos algo con que comenzar:
showMessageDialog
Ok, para probar est mtodo, lo nico que haremos ser crear una clase con un mtodo main,
vamos a suponer que la clase se llama, MessageDialog:
5 }
6}
Bien, fcil, ahora, vamos a jugar un poco con esto, para acceder a este mtodo simplemente
tenemos que importar la clase JOptionPane, aunque normalmente netbeans lo hace por
nosotros pondr la lnea de cdigo por cualquier cosa:
1 import javax.swing.JOptionPane;
1
Instructor: Paul Delgado Soto
Una vez importado lo nico que tenemos que hacer es teclear el nombre de la clase ms el
mtodo que queremos utilizar, teniendo en cuenta una cosa, el mtodo showMessageDialog
tiene 3 sobrecargas del mtodo, uno que recibe 2 parametros, otro de 4, y otro de 5, vamos a
ver uno por uno para observar como vamos personalizando cada vez ms nuestro mensaje, el
primero que veremos es el de dos parametros:
5 }
7}
Bien, explicacin rpida, el primer parmetro, representa el componente padre sobre el cual el
mensaje se mostrar, si nosotros no le enviamos ninguno, como en este caso lo estamos
haciendo, simplemente mostrar una ventana similiar a la siguiente:
2
Instructor: Paul Delgado Soto
Tercer Parmetro: El mensaje que se mostrar en la barra de titulo.
Cuarto Parmetro: Una variable Int contenida por JOptionPane, que representa el
icono que se mostrar en la ventana, algunos de los valores posibles
son: INFORMATION_MESSAGE , WARNING_MESSAGE , QUESTION_MESSAGE ,
PLAIN_MESSAGE, ERROR_MESSAGE
1 import java.awt.Component;
2 import java.awt.Graphics;
3 import java.awt.Image;
4 import javax.swing.Icon;
5 import javax.swing.ImageIcon;
9 @Override
10 public void paintIcon(Component c, Graphics g, int x, int y) {
11 Image image = new ImageIcon(getClass().getResource("/resources/icon-pencil-
12 png.png")).getImage();
13 g.drawImage(image, x, y, c);
14 }
15
3
Instructor: Paul Delgado Soto
16 @Override
18 return 50;
19 }
20
21 @Override
23 return 50;
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 mtodo de 5
parametros:
Si se dan cuenta, los parmetros son idnticos a los parmetros que se la pasan al mtodo de
cuatro parmetros, solo que esta vez, existe un quinto parmetro, que nos permite enviar un
icono, proporcionando un resultado similar al siguiente:
showInputDialog
4
Instructor: Paul Delgado Soto
Bien, para trabajar con el showInputDialog, vamos a crear nuevamente una clase a la cual le
llame InputDialog nuevamente con un mtodo main:
4 }
5}
Bien, de antemano les digo que nuevamente necesitaremos el import, as que despues de
agregarlo comenzaremos a trabajar, y esta vez lo haremos ms rpido ya que despues de leer
la primera parte, habrn comprendido como est la dinmica de los dialogos. El inputDialog
contiene 6 sobrecargas del mtodo, los cuales tienen los siguientes parametros y ojo, TODOS
(Con excepcin del ultimo) devuelven un String:
Mtodo 1:
1 JOptionPane.showInputDialog(Mensaje);
5
Instructor: Paul Delgado Soto
Mtodo 2:
Mtodo 3:
Explicacion: Este mtodo es muy similar al primero, la nica diferencia es que este nos permite
ubicar el InputDialog sobre un componente, en este caso su utilizacin sera solo remplazar el
primer parametro por el componente o null si no existe un componente:
6
Instructor: Paul Delgado Soto
El resultado sera el mismo que el del mtodo 1:
Mtodo 4:
Explicacin: Este mtodo 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:
Mtodo 5:
Explicacin: Este mtodo es algo diferente a los anteriores, aunque tambin incluye el padre,
el segundo parmetro representar el texto del cuadro de texto y el tercero el ttulo de la
ventana, por ultimo, tenemos la posibilidad de enviar un parmetro tal y como lo hicimos en el
showMessageDialog para seleccionar un icono por defecto, un ejemplo de uso sera:
7
Instructor: Paul Delgado Soto
String respuesta = JOptionPane.showInputDialog(null, "Escriba nuevamente su nombre",
1
"Error!", JOptionPane.ERROR_MESSAGE);
Mtodo 6:
1 String[] carreras = {
3 "Ingeniera industrial",
4 "Ingeniera en mecatrnica",
5 "Ingeniera en informatica",
6 "Ingeniera petroqumica"
7 };
8
Instructor: Paul Delgado Soto
9 String resp = (String) JOptionPane.showInputDialog(null, "Seleccione una carrera a
cursar", "Carrera", JOptionPane.DEFAULT_OPTION, icon, carreras, carreras[0]);
cuadro de dialogo
showConfirmDialog
Una vez que hemos dominado los mtodos anteriores, utilizar un showConfirmDialog es super
sencillo, este, cuenta con cuatro sobrecargas del mtodo, y los veremos de manera super
rpida, para esto hagamos una clase con cualquier nombre (en mi caso showConfirmDialog) y
pongamosle un mtodo main para comenzar a trabajar, y veamos como funcionan estos
mtodos:
Mtodo 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 confirmacin, este, por default mostrar las opciones si, no y cancelar, y devolver
un entero con la opcin 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:
9
Instructor: Paul Delgado Soto
De esta manera tendramos un resultado como el siguiente:
Mtodo 2:
Este componente es un poco mas completo, las primeras dos opciones son las mismas que el
mtodo anterior, pero agregamos tal y como antes el titulo de la ventana, y un parmetro
nuevo, el tipo de seleccin, 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:
Mtodo 3:
10
Instructor: Paul Delgado Soto
Bueno, este mtodo 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, por ejemplo:
Teniendo un resultado como el siguiente, como pueden ver, las variables que utilizamos en los
mtodos del JOptionPane siempre son casi las mismas, si estan siguiente este tutorial paso a
paso, a este punto ya lo deben estar viendo super fcil, el cdigo del mtodo anterior sera el
siguiente:
Mtodo 4:
Y el que nos faltaba, el mtodo al cual podemos pasarle un icono personalizado simplemente
por esttica, veamos un ejemplo con el mismo icono que programamos al principio:
11
Instructor: Paul Delgado Soto
Teniendo un resultado muy similar a los anteriores y funcionando igual que todos los
showOptionDialog
El mtodo anterior, nos enseo una manera de darle a escoger al usuario mas de una opcin
en una ventana de dialogo, como una manera ms personalizada de hacer esto, podemos
utilizar el mtodo showOptionDialog que nos proporciona JOptionPane, este mtodo no tiene
sobrecarga y cuenta con los siguientes parmetros.
Los nicos que hay que dejar en claro despus de leer este post son el tipo de seleccin, que
utilizamos un tipo de seleccion como el del showConfirmDialog, 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 mtodo, devuelve un valor
en int del valor que haya seleccionado el usuario, veamos un ejemplo de esto:
12
Instructor: Paul Delgado Soto
paso el icono personalizado que quiero que tenga mi mensaje de dialogo, el arreglo de
opciones y la opcin por defecto, el cual, me dara un resultado como el siguiente:
13
Instructor: Paul Delgado Soto