JOptionPane.showOptionDialog()
Tenemos un método JOptionPane.showOptionDialog() que
nos muestra la ventana más configurable de todas, en ella debemos definir todos
los botones que lleva. De hecho, las demás ventanas disponibles con JOptionPane se
construyen a partir de esta. Por ello, al método debemos pasarle muchos
parámetros:
■ parentComponent: A partir de este componente,
se intentará determinar cual es la ventana que debe hacer de padre del JOptionPane.
Se puede pasar null, pero conviene pasar, por ejemplo, el botón desde el
cual se lanza la acción que provoca que se visualice el JOptionPane. De
esta manera, la ventana de aviso se visualizará sobre el botón y no se podrá ir
detrás del mismo si hacemos click en otro sitio.
■ message: El mensaje a mostrar, habitualmente
un String, aunque vale cualquier Object cuyo método toString() devuelva
algo con sentido.
■ title: El título para la ventana.
■ optionType: Un entero indicando qué opciones
queremos que tenga la ventana. Los posibles valores son las constantes
definidas enJOptionPane: DEFAULT_OPTION, YES_NO_OPTION,
YES_NO_CANCEL_OPTION, o OK_CANCEL_OPTION.
■ messageType: Un entero para indicar qué tipo de
mensaje estamos mostrando. Este tipo servirá para que se determine qué icono
mostrar. Los posibles valores son constantes definidas
en JOptionPane: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE,
QUESTION_MESSAGE, o PLAIN_MESSAGE
■ icon: Un icono para mostrar. Si ponemos null,
saldrá el icono adecuado según el parámetro messageType.
■ options: Un array de objects que
determinan las posibles opciones. Si los objetos son componentes visuales,
aparecerán tal cual como opciones. Si son String, el JOptionPane pondrá
tantos botones como String. Si son cualquier otra cosa, se les tratará
como Stringllamando al método toString(). Si se pasa null,
saldrán los botones por defecto que se hayan indicado en optionType.
■ initialValue: Selección por defecto. Debe ser
uno de los Object que hayamos pasado en el parámetro options. Se
puede pasar null.
La llamada a JOptionPane.showOptionDialog() devuelve
un entero que representa la opción que ha seleccionado el usuario. La primera
de las opciones del array es la posición cero. Si se cierra la ventana con la
cruz de la esquina superior derecha, el método devolverá -1.
Un ejemplo de cómo llamar a este método