Usuario:ManuelRomero/ioGrafica

=INTEFAZ GRÁFICO EN JAVA=
 * Java define el paquete javax.swing  como un conjunto de clases para desarrollar interfaces gráficas.
 * Antes eran definidas en java.awt, pero estas no eran independientes de la plataforma
 * En el paquete java.awt siguen estando las clases para gestionar la colocación de objetos gráficos layout y tema de eventos
 * Las clases del paquete siwng están escritas en java puro y sí son independientes de la plataforma
 * Siwng el potencial de la clase para el interfaz gráfico de java
 * Actualmente aparece la tecnología javaFX que también incluye desarrollos gráficos, en desarrollos web

CLASIFICACION
A continuación estudiaremos contenedores específicos para Son cuadros de diágolo específicos implementados en la clase 'javax.swing.JOptionPane'
 * Los elementos gráficos se pueden clasificar en
 * 1) Contenedores como una ventana contendrán otros contenedores y contenidos
 * 2) Contenidos como un botón que necesitans un contenedor para poder aparecer
 * En el siguiente tema analizaremos esta clasificacion
 * Pedir datos
 * Mostrar mensajes

JOptionPane y diálogos modales
Tenemos 4 posibilidades con cuatro de sus métodos p.e pedir un dato, pedir una confirmación mostrar un mensaje,...
 * 1) showOptionDialog Nos muestra una serie de opciones y nos devuelve un entero con la opción seleccionada
 * 2) showInputDialog Permite que introduzcamos texto por un interfaz gráfico
 * 3) showMessagedialog Nos visualiza un mensaje
 * 4) showConfirmDialog Nos pide una confirmación
 * Estos métodos están tanto disponibles para ventanas normales como para JInternalFrame.
 * Están ventanas están creadas ya que responden a operativa muy habitual en desarrollos.

Parámetros de los métodos
Estos métodos tienen unos parámetros muy similares en sus constructores que se comentan a continuacion
 * Component parentComponent
 * Es el objeto padre de la ventana que contiene la caja de diálogo
 * La caja de diálogo se centrará en su padre
 * Su valor puede ser null en cuyo caso se centrará en la pantalla
 * Objetos Component pueden ser la ventana desde la que se llama o un botón,...(ver la diversidad)


 * Object mensaje Es el mensaje que aparece en el dialog. Casi siempre es un string
 * String title ==> Es el título de la caja dialogo

JOptionPane.showInputDialog 1 parámetros
A continuación ponemos un ejemplo de cada uno.
 * Tenemos sobrecargado el método con 1,2,3,4 o 6 parámetros.
 * El método Retorna el String insertado o null si cancelamos
 * Argumentos Aquí solo le pasamos el mensaje 
 * 1) Object mensaje (Este object se convierte a string si le pasamos un string.
 * El método Retorna el String insertado en el diálogo o null si cancelamos

JOptionPane.showInputDialog 2 parámetros

 * Argumentos Aquí le pasamos:
 * 1) el Component padre del dialog o valor null
 * 2) el Object mensaje que aparece en la pantalla
 * Para este ejemplo creamos una ventana aunque todavía no hemos visto como hacerlo

JOptionPane.showInputDialog 3 parámetros
Ahora para simplificar el primer parámetro ponemos null y así no tenemos que crear la ventana principal
 * Argumentos Aquí le pasamos:
 * 1) Component padre del dialog o valor null
 * 2) Object mensaje que aparece en la pantalla
 * 3) Object texto por defecto el texto que aparece en la caja de diálogo (por defecto aparecía vacío)

JOptionPane.showInputDialog 4 parámetros
Seguimos poniendo null al primer parámetro (component padre) para simplificar ERROR_MESSAGE INFORMATION_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE
 * Argumentos Aquí le pasamos:
 * 1) Component padre del dialog o valor null
 * 2) Object mensaje que aparece en la pantalla
 * 3) String titulo ==> Es el título de la caja de diálogo(Por defecto aparecía entrada)
 * 4) int icono que se visualiza por defecto para indicar el tipo de mensaje. Valores posibles



JOptionPane.showInputDialog 7 parámetros
Seguimos poniendo null al primer parámetro (component padre) para simplificar
 * En este caso en lugar de presentar una caja de texto para escribir
 * Presentamos un combobox o caja combinada con diferentes opciones
 * La lista de opciones se presenta en un array de objetos
 * El método devuelve un object, ya que la lista es de object, aunque lo normal es trabajar con String
 * Observar que el 5º parámetro es un Ico o icono que remplazaría al icono por defecto del 4º parámetro :
 * En este caso el directorio iconos están al mismo nivel que src dependiendo del directorio del proyecto

ShowOptionDialog

 * Es la ventana más configurable de todas.
 * A continuación hacemos una lista de los parámetros
 * El concepto de los parámetros se utiliza también en el resto de los métodos


 * parentComponent: A partir de este componente, se intentará determinar cual es el componente que hace 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.La ventana que aparece centrada en la pantalla o en el componet padre
 * 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 en JOptionPane: 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 String llamando 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.

y la ventana que se obtiene con el código anterior

Imagen:ShowOptionDialog.jpg

.showMessageDialog Mostrar mensaje

 * Esta es la más sencilla de todas, sólo muestra una ventana de aviso al usuario.
 * La ejecución se detiene hasta que el usuario cierra la ventana.

Este médoto también tiene sobrecarga para modificar Título e icono por defecto.

Imagen:ShowMessageDialog.jpg

showConfirmDialog:Mesaje pidiendo confirmación
YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION.
 * Este método muestra una ventana pidiendo una confirmación al usuario,
 * Pide confirmacion para llevar a cabo una accion
 * El método devuelve un entero indicando la respuesta del usuario.
 * Los valores de ese entero puede ser alguna de las constantes definidas en JOptionPane:

El siguiente ejemplo de codigo

Imagen:confirmacion.png