Diferencia entre revisiones de «Usuario:ManuelRomero/ioGrafica»
Línea 27: | Línea 27: | ||
===JOptionPane y diálogos modales=== | ===JOptionPane y diálogos modales=== | ||
Tenemos 4 posibilidades con cuatro de sus métodos | Tenemos 4 posibilidades con cuatro de sus métodos | ||
− | + | #'''showOptionDialog()''' Nos muestra una serie de opciones y nos devuelve un entero con la opción seleccionada | |
− | + | #'''showInputDialog()''' Permite que introduzcamos texto por un interfaz gráfico | |
− | + | #'''showMessagedialog()''' Nos visualiza un mensaje | |
− | + | #'''showConfirmDialog()''' Nos pide una confirmación | |
− | Estos métodos están tanto disponibles para ventanas normales como para JInternalFrame. | + | *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. | + | *Están ventanas están creadas ya que responden a operativa muy habitual en desarrollos. |
− | p.e pedir un dato, pedir una confirmación mostrar un mensaje,... | + | p.e pedir un dato, pedir una confirmación mostrar un mensaje,... |
===Parámetros de los métodos=== | ===Parámetros de los métodos=== | ||
− | Estos métodos tienen unos parámetros muy similares en sus constructores | + | Estos métodos tienen unos parámetros muy similares en sus constructores que se comentan a continuacion |
− | '''Component | + | ;'''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) | ||
+ | ; | ||
=== JOptionPane.showOptionDialog() === | === JOptionPane.showOptionDialog() === | ||
+ | Tenemos sobrecargado el método con 1,2,3,4 o 6 parámetros. | ||
+ | A continuación ponemos un ejemplo de cada uno. | ||
+ | <source lang=java> | ||
+ | import javax.swing.JOptionPane; | ||
+ | public class CajaDialogo { | ||
+ | public static void main(String []a){ | ||
+ | String seleccion; | ||
+ | |||
+ | /*Con un argumento ç | ||
+ | * Object mensaje ==> Es el mensaje que aparece en el dialog*/ | ||
+ | seleccion = JOptionPane.showInputDialog("Dime tu nombre"); | ||
+ | System.out.println("Nombre introducido "+seleccion); | ||
+ | }//End de main | ||
+ | }//End de la clase | ||
+ | </source> | ||
+ | [[Archivo: | ||
+ | |||
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: | 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: |
Revisión de 02:46 7 abr 2012
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Contenido
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
- Los elementos gráficos se pueden clasificar en
- Contenedores como una ventana contendrán otros contenedores y contenidos
- Contenidos como un botón que necesitans un contenedor para poder aparecer
- En el siguiente tema analizaremos esta clasificacion
A continuación estudiaremos contenedores específicos para
- Pedir datos
- Mostrar mensajes
Son cuadros de diágolo específicos implementados en la clase 'javax.swing.JOptionPane'
|
JOptionPane y diálogos modales
Tenemos 4 posibilidades con cuatro de sus métodos
- showOptionDialog() Nos muestra una serie de opciones y nos devuelve un entero con la opción seleccionada
- showInputDialog() Permite que introduzcamos texto por un interfaz gráfico
- showMessagedialog() Nos visualiza un mensaje
- 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.
p.e pedir un dato, pedir una confirmación mostrar un mensaje,...
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)
JOptionPane.showOptionDialog()
Tenemos sobrecargado el método con 1,2,3,4 o 6 parámetros. A continuación ponemos un ejemplo de cada uno.
import javax.swing.JOptionPane; public class CajaDialogo { public static void main(String []a){ String seleccion; /*Con un argumento ç * Object mensaje ==> Es el mensaje que aparece en el dialog*/ seleccion = JOptionPane.showInputDialog("Dime tu nombre"); System.out.println("Nombre introducido "+seleccion); }//End de main }//End de la clase
[[Archivo:
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 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.
Aquí un ejemplo de cómo llamar a este método
int seleccion = JOptionPane.showOptionDialog( unComponentePadre, "Seleccione opcion", "Selector de opciones", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, unIcono, // null para icono por defecto. new Object[] { "opcion 1", "opcion 2", "opcion 3" }, // null para YES, NO y CANCEL "opcion 1"); if (seleccion != -1) System.out.println("seleccionada opcion " + (seleccion + 1));
y la ventana que se obtiene con el código anterior
JOptionPane.showInputDialog()
- Tenemos varios métodos JOptionPane.showInputDialog()
- Se puede hacer ya que variaos parámetros toman valor inicializado por defecto y no debemos pasarlos
Los parámetros y sus significados son muy similares a los del método showOptionDialog(), pero hay una diferencia. En este caso si pasamos un array de opciones se verán como un JComboBox
String seleccion = JOptionPane.showInputDialog( unComponentePadre, "Input dialog", JOptionPane.QUESTION_MESSAGE); // el icono sera un iterrogante System.out.println("El usuario ha escrito "+seleccion);
y la imagen que obtenemos con este código
En este segundo ejemplo, damos todas las opciones que queremos, obteniendo un JComboBox
// Con JCombobox Object seleccion = JOptionPane.showInputDialog( unComponentePadre, "Seleccione opcion", "Selector de opciones", JOptionPane.QUESTION_MESSAGE, unIcono, // null para icono defecto new Object[] { "opcion 1", "opcion 2", "opcion 3" }, "opcion 1"); System.out.println("El usuario ha elegido "+seleccion);
y esta es la imagen que se obtiene.
JOptionPane.showMessageDialog()
- 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.
JOptionPane.showMessageDialog( componentePadre, "Un aviso puñetero"); System.out.println("ya estas avisado");
y la imagen que muestra este código
JOptionPane.showConfirmDialog()
- 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: ç
YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION.
El siguiente ejemplo de codigo
int confirmado = JOptionPane.showConfirmDialog( componentePadre, "¿Lo confirmas?"); if (JOptionPane.OK_OPTION == confirmado) System.out.println("confirmado"); else System.out.println("vale... no borro nada...");
muestra la siguiente imagen