swing

19
Componentes Swing - Cartilla de Referencia El presente documento tiene como objetivo brindar información básica de consulta para cada uno de los componentes que se dan en el curso. Los componentes cubiertos son los siguientes: 1. JButton 2. JCheckBox 3. JRadioButton 4. JLabel 5. JTextField 6. JTextArea 7. JList 8. JComboBox 9. JPanel 10. JScrollPane 11. JOptionPane

Upload: matias-franco

Post on 26-Oct-2014

49 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Swing

Componentes Swing - Cartilla de Referencia

El presente documento tiene como objetivo brindar información básica de consulta para cada uno de los componentes que se dan en el curso.

Los componentes cubiertos son los siguientes:

1. JButton

2. JCheckBox

3. JRadioButton

4. JLabel

5. JTextField

6. JTextArea

7. JList

8. JComboBox

9. JPanel

10. JScrollPane

11. JOptionPane

Page 2: Swing

Introducción.

La mayoría de los componentes básicos de Swing heredan directa o indirectamente de

la clase JComponent: java.lang.Object | +--java.awt.Component | +--java.awt.Container

|

+--javax.swing.JComponent

Por lo tanto tienen en común un conjunto de métodos que proveen, entre otras, las siguientes funcionalidades a sus descendientes:

Establecer la apariencia visual del componente:

Tipo Función

Método void setBorder(Border unBorde) Establece el tipo de borde en el contorno del

componente. Es posible usar la clase

javax.swing.BorderFactory para crear la mayoría

de los bordes estándar que provee Swing. Método void setForeground(Color unColor) Establece el color del texto del componente. Método void setBackground(Color unColor) Establece el color de fondo del componente. Método void setFont(Font unTipoLetra) Establece el tipo de letra del componente.

Ejemplo: Border bordeLineaAzul = BorderFactory.createLineBorder(Color.blue);

componente.setBorder(bordeLineaAzul);

Ejemplo: componente.setForeground(Color.black); // black es una constante definida // en java.awt.Color

Ejemplo: componente.setBackground(Color.gray); // gray es una constante definida en // java.awt.Color

Ejemplo: Font fuenteSerifNegrita = new Font("Serif", Font.BOLD, 16);

componente.setFont(fuenteSerifNegrita);

Page 3: Swing

Establecer el estado del componente:

Tipo Función

Método void setToolTipText(String ayuda) Establece ayuda contextual acerca de la

utilización del componente, cuando el puntero del

mouse pasa sobre el mismo, se despliega la

cadena de texto asignada. Método void setEnabled(boolean habilitar) Habilita o deshabilita el componente según el

parámetro (true para habilitar). Un componente

deshabilitado no puede responder a la entrada de

datos por parte del usuario, ni generar eventos.

Los componentes están habilitados inicialmente

por defecto. Método boolean isEnabled() Indica si el componente está habilitado. Método void setVisible(boolean mostrar) Hace visible o invisible al componente según el

parámetro (true para hacer visible). Los

componentes son visibles inicialmente por

defecto, a excepción de los componentes

contenedores de alto nivel (JFrame, JDialog,

JApplet). Método boolean isVisible() Indica si el componente debe visualizarse cuando

el objeto que lo contiene (ej. JPanel) está visible.

Ejemplo: botonFinalizar.setToolTipText(“Pulse para terminar la transacción”);

Manejar el tamaño y la posición los componentes:

Tipo Función

Método int getWidth() Retorna el ancho del componente en pixels. Método int getHeight() Retorna el alto del componente en pixels. Método void setSize(int ancho, int alto) Establece el tamaño del componente en pixels.

Page 4: Swing

1. JButton java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent | +--javax.swing.AbstractButton |

+--javax.swing.JButton

Constructores, métodos y eventos principales:

Tipo Función

Constructor JButton() Crea un botón sin texto. Constructor JButton(String texto) Crea un botón con el texto pasado por parámetro. Método void setText(String texto) Establece el texto del botón. Método String getText() Retorna el texto del botón. Evento Action Event Ocurre cuando el usuario realiza “click” sobre el botón.

Desencadenante: Ocurre cuando el usuario realiza “click” sobre el botón. Método para registrar el “listener”: void addActionListener(ActionListener l).

Ejemplo (sin entorno de desarrollo): //en la definición de los atributos de la ventana

private JButton botonAceptar;

//en el código que inicializa la ventana

botonAceptar = new JButton(“Aceptar”);

//registrar listener con inner class anónima.

botonAceptar.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e){

//código a ejecutar cuando el usuario

// presiona el botón aceptar.

}

}

); En Visual Age: En la ventana “Composición Visual” presionar el botón derecho del mouse sobre el componente y seleccionar “Evento a Código”. Luego elegir “actionPerformed” del combo

“lista de eventos”. Finalmente introducir el código que responde al evento dentro del método que aparece en pantalla y presionar “Aceptar”. Para guardar los cambios presione “Control

(Ctrl) + S”.

Page 5: Swing

2. JCheckBox java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent | +--javax.swing.AbstractButton | +--javax.swing.JToggleButton |

+--javax.swing.JCheckBox

Comentario: Los check boxes son similares a los radio buttons, pero su modelo de selección es diferente por convención. Cualquier número de check boxes en un grupo

pueden ser seleccionados (ninguno, alguno o todos). Por otro lado, en un grupo de radio buttons, sólo puede haber uno seleccionado.

Constructores, métodos y eventos principales:

Tipo Función

Constructor JCheckBox() Crea un check box sin texto. Constructor CheckBox(String texto) Crea un check box con el texto pasado por parámetro. Método JCheckBox(String texto,

boolean seleccionado)

Crea un check box con el texto pasado en el primer

parámetro y con el estado inicial indicado en el segundo

parámetro (true para iniciar seleccionado). Método void setSelected(boolean

seleccionado)

Establece el estado del check box según el parámetro (true

para seleccionar). Método boolean isSelected() Retorna el estado del check box. True si está seleccionado,

false en caso contrario. Método void setText(String texto) Establece el texto del check box. Método String getText() Retorna el texto del check box.

Page 6: Swing

3. JRadioButton

java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent | +--javax.swing.AbstractButton | +--javax.swing.JToggleButton |

+--javax.swing.JRadioButton

Comentario: Los radio buttons son grupos de botones en los que, por convención,

sólo uno de ellos puede estar seleccionado. Swing soporta radio buttons con las clases JRadioButton y ButtonGroup.

Para crear un grupo de radio buttons en el cual solo uno puede ser seleccionado a la vez, instancie un objeto del tipo ButtonGroup y agregue los objetos JRadioButton

mediante el método add. Ejemplo:

//en la definición de los atributos de la ventana

private ButtonGroup grupo; private JRadioButton opcionUno; private JRadioButton opcionDos;

private JRadioButton opcionTres;

//en el código que inicializa la ventana // instanciar los radio buttons. opcionUno = new JRadioButton("Uno");

opcionUno.setSelected(true); opcionDos = new JRadioButton("Dos");

opcionTres = new JRadioButton("Tres"); // Agrupar los radio buttons.

grupo = new ButtonGroup(); grupo.add(opcionUno);

grupo.add(opcionDos); grupo.add(opcionTres);

Page 7: Swing

Constructores, métodos y eventos principales:

Tipo Función

Constructor JRadioButton() Crea un radio button sin texto. Constructor JRadioButton(String texto) Crea un radio button con el texto pasado por parámetro. Método JRadioButton(String texto,

boolean seleccionado)

Crea un radio button con el texto pasado en el primer

parámetro y con el estado inicial indicado en el segundo

parámetro (true para iniciar seleccionado). Método void setSelected(boolean

seleccionado)

Establece el estado del radio button según el parámetro

(true para seleccionar). Método boolean isSelected() Retorna el estado del radio button. True si está

seleccionado, false en caso contrario. Método void setText(String texto) Establece el texto del radio button. Método String getText() Retorna el texto del radio button. Evento Item Event Ocurre cuando el usuario cambia el estado de selección

del radio button.

Desencadenante: Ocurre cuando el usuario cambia el estado de selección del radio button.

Método para registrar el “listener”: void addItemListener(ItemListener l). Ejemplo (sin entorno de desarrollo): //en la definición de los atributos de la ventana private ButtonGroup grupo;

private JRadioButton opcionUno; private JRadioButton opcionDos;

//en el código que inicializa la ventana // instanciar los radio buttons.

opcionUno = new JRadioButton("Uno"); opcionUno.setSelected(true); opcionDos = new JRadioButton("Dos");

// Agrupar los radio buttons.

grupo = new ButtonGroup(); grupo.add(opcionUno);

grupo.add(opcionDos); //registrar listener con inner class anónima. opcionUno.addItemListener( new ItemListener(){

public void itemStateChanged(ItemEvent e){ if (e.getStateChange() == ItemEvent.SELECTED) {

// si el evento se desencadenó porque la opción // “Uno” fue seleccionada ... } else {

// si el evento se desencadenó porque la opción // “Uno” perdió la selección ...

} } }

);

Page 8: Swing

Comentario: El método itemStateChanged recibe como parámetro un objeto del tipo ItemEvent, el cual define, entre otros, los siguientes métodos:

ItemSelectable getItemSelectable()

Retorna el componente que disparó el evento.

int getStateChange()

Retorna el nuevo estado del componente. La clase ItemEvent define dos estados: SELECTED y DESELECTED.

En Visual Age: En la ventana “Composición Visual” presionar el botón derecho del mouse sobre el componente y seleccionar “Evento a Código”. Luego elegir “itemStateChanged” del combo “lista de eventos”. Finalmente introducir el código que responde al evento dentro del método

que aparece en pantalla y presionar “Aceptar”. Para guardar los cambios presione “Control (Ctrl) + S”.

4. JLabel java.lang.Object |

+--java.awt.Component |

+--java.awt.Container | +--javax.swing.JComponent |

+--javax.swing.JLabel

Constructores, métodos y eventos principales:

Tipo Función

Constructor JLabel() Crea una etiqueta sin texto. Constructor JLabel(String texto) Crea una etiqueta con el texto pasado por parámetro. Método void setText(String texto) Establece el texto de la etiqueta. Método String getText() Retorna el texto de la etiqueta.

Page 9: Swing

5. JTextField java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent | +--javax.swing.text.JTextComponent |

+--javax.swing.JTextField

Constructores, métodos y eventos principales:

Tipo Función

Constructor JTextField() Crea un campo de texto vacío. Constructor JTextField(String texto) Crea un campo con el texto pasado por parámetro. Método void setText(String texto) Establece el texto del campo. Método String getText() Retorna el texto del campo. Método void setEditable(boolean) Establece si el campo de texto puede ser editado por el

usuario. Método boolean isEditable() Indica si el campo de texto puede ser editado por el

usuario.

Page 10: Swing

6. JTextArea java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent | +--javax.swing.text.JTextComponent |

+--javax.swing.JTextArea

Comentario: Un área de texto muestra múltiples líneas de texto y permite que el

usuario edite el mismo con el teclado y el ratón.

Constructores, métodos y eventos principales:

Tipo Función

Constructor JTextArea() Crea un área de texto vacía. Constructor JTextArea(String texto) Crea un área con el texto pasado por parámetro. Método void setText(String texto) Establece el texto del área. Método String getText() Retorna el texto del área. Método void setEditable(boolean) Establece si el área de texto puede ser editada por el

usuario. Método boolean isEditable() Indica si el área de texto puede ser editada por el

usuario. Método void setLineWrap(boolean

ajustar)

Establece la política de ajuste de línea del área de

texto según el parámetro (true para activar la

ruptura de líneas). Por defecto, un área de texto no

rompe las líneas, sino que muestra el contenido en

una sóla línea, y si el área de texto está dentro de un

scroll pane (consultar JScrollPane), se permite

desplazar horizontalmente. Método void setWrapStyleWord(boolean

nivelPalabra)

Establece el nivel de ajuste de línea (si el área de

texto lo utiliza) según el parámetro (true para que

las líneas sean ajustadas a nivel de palabra, false

para ajustar a nivel de caracter sin importar que

hayan cortes). Por defecto la propiedad está

inicilmente en false.

Page 11: Swing

7. JList java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent |

+--javax.swing.JList

Constructores, métodos y eventos principales:

Tipo Función

Constructor JList(Vector elementos) Crea una lista con los elementos del vector pasado por

parámetro. Despliega lo que devuelve el método

toString() de los elementos. La lista creada de esta

manera utiliza internamente un modelo denominado

“inmutable”, ya que no es posible agregar ni eliminar

elementos al mismo. Constructor JList(Object[] elementos) Crea una lista con los elementos del array pasado por

parámetro. Despliega lo que devuelve el método

toString() de los elementos. Constructor JList() Crea una lista inicialmente vacía. Método void setListData(Object[]

elementos)

Establece el contenido de la lista con los elementos del

array pasado por parámetro. Crea un modelo

“inmutable” implícitamente. Método void setListData(Vector

elementos)

Establece el contenido de la lista con los elementos del

vector pasado por parámetro. Crea un modelo

“inmutable” implícitamente. Método void setSelectionMode(int) Establece la cantidad y la forma en que pueden ser

seleccionados los elementos de la lista. Método int getSelectedIndex() Retorna el índice del primer elemento seleccionado, o –1

si no hay selección. El índice del primer elemento de la

lista es 0. Método int[] getSelectedIndices() Retorna un array con los índices de los elementos

seleccionados. El índice del primer elemento de la lista

es 0. Método Object getSelectedValue() Retorna el primer elemento seleccionado, o null si no

hay selección. Método Object[] getSelectedValues() Retorna un array con los elementos seleccionados. Método void clearSelection() Presenta la lista sin elementos seleccionados. Método boolean isSelectionEmpty() Retorna true si no hay ningún elemento seleccionado,

false en caso contrario. Evento Mouse Event Ocurre cuando el usuario realiza "click" en la lista.

Page 12: Swing

Ejemplo: //en la definición de los atributos de la ventana

JList listaClientes; Sistema modelo = new Sistema(); // modelo es la fachada de la aplicación.

//en el código que inicializa la ventana Vector clientes = modelo.getClientes();

listaClientes = new JList(clientes);

Ejemplo: listaClientes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

SINGLE_SELECTION: Solamente puede ser seleccionado un elemento a la vez. SINGLE_INTERVAL_SELECTION: Solamente pueden ser seleccionados elementos contiguos

a la vez. MULTIPLE_INTERVAL_SELECTION: No hay restricción en la cantidad y forma en que pueden ser seleccionados los elementos. Es el estilo por defecto.

Desencadenante: Ocurre cuando el usuario realiza “click” en la lista. Método para registrar el “listener”: void addMouseListener(MouseListener l).

Ejemplo (sin entorno de desarrollo): //en la definición de los atributos de la ventana

JList listaClientes; Sistema modelo = new Sistema(); // modelo es la fachada de la aplicación.

//en el código que inicializa la ventana Vector clientes = modelo.getClientes();

listaClientes = new JList(clientes); //registrar listener con inner class anónima.

listaClientes.addMouseListener( new MouseAdapter(){ public void mouseClicked(MouseEvent){ //código a ejecutar cuando el usuario

// selecciona con el mouse un elemento de la lista.

} }

);

En Visual Age: En la ventana “Composición Visual” presionar el botón derecho del mouse sobre el componente y seleccionar “Evento a Código”. Luego elegir “mouseClicked” del combo “lista

de eventos”. Finalmente introducir el código que responde al evento dentro del método que aparece en pantalla y presionar “Aceptar”. Para guardar los cambios presione “Control (Ctrl) +

S”.

Page 13: Swing

8. JComboBox java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent |

+--javax.swing. JComboBox

Constructores, métodos y eventos principales:

Tipo Función

Constructor JComboBox(Vector elementos) Crea un combo con los elementos del vector pasado

por parámetro. Despliega lo que devuelve el método

toString() de los elementos. El combo creado de

esta manera utiliza internamente el modelo

DefaultComboBoxModel, el cual permite agregar y

eliminar elementos en tiempo de ejecución,

"refrescando" automáticamente su contenido. Constructor JComboBox(Object[] elementos) Crea un combo con los elementos del array pasado

por parámetro. Despliega lo que devuelve el método

toString() de los elementos. El combo creado de

esta manera utiliza internamente el modelo

DefaultComboBoxModel, el cual permite agregar y

eliminar elementos en tiempo de ejecución,

"refrescando" automáticamente su contenido. Constructor JComboBox() Crea un combo inicialmente sin elementos. Método void addItem(Object elemento) Agrega el elemento al combo. Método void insertItemAt(Object

elemento, int indice)

Agrega el elemento al combo en el índice

especificado. El índice del primer elemento del

combo es 0. Método Object getItemAt(int) Retorna el elemento en el índice especificado. El

índice del primer elemento del combo es 0. Método Object getSelectedItem() Retorna el elemento seleccionado. Método Object getSelectedIndex() Retorna el índice de elemento seleccionado. El

índice del primer elemento del combo es 0. Método void removeAllItems() Elimina todos los elementos del combo. Método void removeItemAt(int) Elimina el elemento en el índice especificado. Método void removeItem(Object

elemento)

Elimina el elemento del combo. Las clase del

elemento a eliminar debe implementar el método

boolean equals(Object obj). Método int getItemCount() Retorna el número de elementos en el combo. Evento Item Event Ocurre cuando el usuario selecciona un nuevo

elemento del combo.

Page 14: Swing

Desencadenante: Ocurre cuando el usuario selecciona un nuevo elemento del combo. Método para registrar el “listener”: void addItemListener(ItemListener l). Ejemplo (sin entorno de desarrollo): //en la definición de los atributos de la ventana

private Sistema modeloSistema = new Sistema(); // modeloSistema es la fachada de la // aplicación.

private JComboBox comboClientes; //en el código que inicializa la ventana

Vector clientes = modeloSistema.getClientes(); comboClientes = new JComboBox(clientes);

//registrar listener con inner class anónima.

opcionUno.addItemListener( new ItemListener(){ public void itemStateChanged(ItemEvent e){

// código a ejecutar cuando cambia el elemento // seleccionado. }

} );

Comentario: El método itemStateChanged recibe como parámetro un objeto del tipo

ItemEvent, el cual define, entre otros, los siguientes métodos:

ItemSelectable getItemSelectable()

Retorna el componente que disparó el evento.

int getStateChange()

Retorna el nuevo estado del componente. La clase ItemEvent define dos estados: SELECTED y DESELECTED.

En Visual Age: En la ventana “Composición Visual” presionar el botón derecho del mouse sobre el componente y seleccionar “Evento a Código”. Luego elegir “itemStateChanged” del combo “lista de eventos”. Finalmente introducir el código que responde al evento dentro del método

que aparece en pantalla y presionar “Aceptar”. Para guardar los cambios presione “Control (Ctrl) + S”.

Page 15: Swing

9. JPanel java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent |

+--javax.swing.JPanel

Comentario: Los paneles se utilizan como contenedores de propósito general para

componentes básicos, facilitando el posicionamiento de los mismos. Se consideran contenedores de nivel intermedio y son parte de una jerarquía que forman todos los

elementos Swing que aparecen dentro de un contenedor de alto nivel (JFrame, JDialog, JApplet), el cual es su raíz.

Todo contenedor de alto nivel contiene implícitamente un panel denominado "content pane". Como regla, el “content pane” contiene directa o indirectamente todos los

componentes visibles de la ventana (excepto JMenu).

Podemos agregar componentes a una ventana de dos formas:

a) Directamente al “content pane” creado por defecto.

public static void main(String s[]) {

JFrame ventana = new JFrame("Ventana Principal"); JButton unBoton = new JButton("Aceptar"); JTextField unaCajaTexto = new JTextField();

ventana.getContentPane().add(unBoton);

ventana.getContentPane().add(unaCajaTexto); ventana.setVisible(true); }

b) Instanciar un panel, agregarle los componentes y luego establecer el mismo

como el nuevo “content pane”.

public static void main(String s[]) { JFrame ventana = new JFrame("Ventana Principal");

JPanel unPanel = new JPanel();

JButton unBoton = new JButton("Aceptar"); JTextField unaCajaTexto = new JTextField();

unPanel.add(unBoton); unPanel.add(unaCajaTexto);

ventana.setContentPane(unPanel); ventana.setVisible(true); }

Page 16: Swing

Constructores, métodos y eventos principales:

Tipo Función

Constructor JPanel() Crea un panel. Método void add(Component un Componente) Agrega el componente al contenedor.

10. JScrollPane java.lang.Object

| +--java.awt.Component | +--java.awt.Container

| +--javax.swing.JComponent |

+--javax.swing.JScrollPane

Comentario: Un scroll pane provee scrolling vertical y horizontal a un componente.

Se utiliza habitualmente con listas (JList) y con áreas de texto (JTextArea).

Constructores, métodos y eventos principales:

Tipo Función

Constructor JScrollPane() Crea un scroll pane vacío. Constructor JScrollPane(Component

unComponente)

Crea un scroll pane que muestra el contenido

del componente (denominado “cliente”); si es

necesario, despliega barras horizontal y

vertical de scrolling. Método void setViewportView(Component

unComponente)

Establece al componente como “cliente” del

scroll pane; si es necesario, despliega barras

horizontal y vertical de scrolling. Se puede

realizar en el constructor.

Ejemplo:

//en la definición de los atributos de la ventana

private JList listaClientes; private JScrollPane scrollpane = new JScrollPane(); private Sistema modelo = new Sistema(); // modelo es la fachada de la aplicación.

//en el código que inicializa la ventana

Vector clientes = modelo.getClientes(); listaClientes = new JList(clientes); scrollpane.setViewportView(clientes);

Page 17: Swing

11. JOptionPane java.lang.Object | +--java.awt.Component | +--java.awt.Container |

+--javax.swing.JComponent |

+--javax.swing.JOptionPane

Comentario: La clase JOptionPane provee una serie de métodos “static” para desplegar mensajes en pantalla e interactuar con el usuario en forma de cajas de

diálogo. Es posible adaptar los íconos, el texto y el titulo del diálogo, entre otros.

Los métodos mas utilizados son: showMessageDialog y showOptionDialog.

Métodos y principales:

Método Función

static void showMessageDialog(Component ventanaPadre,

Object mensaje)

Muestra una caja de diálogo modal

simple con un solo botón etiquetado

"Aceptar", se puede especificar

fácilmente el texto del mensaje, el

título y el tipo de mensaje.

static void showMessageDialog(Component ventanaPadre,

Object mensaje, String titulo, int tipoMensaje)

static int showOptionDialog(Component ventanaPadre, Object mensaje, String titulo, int tipoOpcion, int tipoMensaje, Icon icono, Object[] opciones, Object valorInicial)

Muestra una caja de diálogo modal

mas flexible (puede mostrar variedad

de íconos, botones y texto en los

mismos). static String showInputDialog(Component ventanaPadre, Object mensaje, String titulo, int tipoMensaje)

Despliega una caja de diálogo modal

en la cual el usuario puede ingresar

texto.

Parámetros: static void showMessageDialog(Component ventanaPadre, Object mensaje) Component ventanaPadre: Es el componenente del cual depende la caja de diálogo

(generalmente un JFrame).

Object mensaje: Especifica lo que debe mostrar la caja de diálogo en el área principal. Generalmente se utiliza un String.

String titulo: El título de la caja de diálogo.

int tipoMensaje: Determina el ícono de la caja de diálogo. Los disponibles son (constantes de la clase JOptionPane): PLAIN_MESSAGE (sin ícono), ERROR_MESSAGE (ícono de error), INFORMATION_MESSAGE (ícono de información), WARNING_MESSAGE (ícono de

advertencia), QUESTION_MESSAGE (ícono de interrogación).

Page 18: Swing

Ejemplo: JOptionPane.showMessageDialog(frame, // ventana padre

"Debe ingresar todos los datos.", // mensaje "Error", // título

JOptionPane.ERROR_MESSAGE); // tipo de mensaje

---------------------------------------------------------------------------------------------------

Parámetros: static int showOptionDialog(Component ventanaPadre, Object mensaje, String titulo, int

tipoOpcion, int tipoMensaje, Icon icono, Object[] opciones, Object valorInicial) Component ventanaPadre: Es el componenente del cual depende la caja de diálogo

(generalmente un JFrame).

Object mensaje: Especifica lo que debe mostrar la caja de diálogo en el área principal. Generalmente se utiliza un String.

String titulo: El título de la caja de diálogo.

int tipoOpcion: Especifica el conjunto de botones que aparecerán en la caja de diálogo. Los disponibles son (constantes de la clase JOptionPane): DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION.

int tipoMensaje: Determina el ícono de la caja de diálogo. Los disponibles son (constantes de

la clase JOptionPane): PLAIN_MESSAGE (sin ícono), ERROR_MESSAGE (ícono de error), INFORMATION_MESSAGE (ícono de información), WARNING_MESSAGE (ícono de advertencia), QUESTION_MESSAGE (ícono de interrogación).

Icon icono: El ícono de la caja de diálogo.

Object[] opciones: Especifica el texto de cada uno de los botones. Generalmente se utiliza

un array de Strings (ver ejemplo). Object valorInicial: Especifica el valor seleccionado por defecto.

Retorno: (constantes de la clase JOptionPane)

Si elige “Si” retorna: YES_OPTION = 0 Si elige “No” retorna: NO_OPTION = 1

Si elige “Cancelar” retorna: CANCEL_OPTION = 2 Si elige “OK” retorna: OK_OPTION = 0

Si cierra la caja de diálogo retorna: CLOSED_OPTION = -1 Ejemplo:

//en el método que captura el evento Action Event del botón Comprar (actionPerformed)

Object[] opciones = {"Si, por favor", "No, gracias"}; // texto de los botones

Page 19: Swing

int opcionElegida = JOptionPane.showOptionDialog(this, // ventana padre "¿Desea recibir actualizaciones", // mensaje

"Mensaje", //título JOptionPane.YES_NO_OPTION, // opciones JOptionPane.QUESTION_MESSAGE, // tipo de mensaje

null, // ícono opciones, // texto de los botones

opciones[1]); // valor seleccionado por defecto if (opcionElegida == JOptionPane.YES_OPTION){ // Si eligió: "Si, por favor" …

} else{ // Si eligió: "No, gracias" o cerró la caja de diálogo …

… }

---------------------------------------------------------------------------------------------------------

Parámetros:

static String showInputDialog(Component ventanaPadre, Object mensaje, String titulo, int

tipoMensaje) Component ventanaPadre: Es el componenente del cual depende la caja de diálogo (generalmente un JFrame).

Object mensaje: Especifica lo que debe mostrar la caja de diálogo en el área principal.

Generalmente se utiliza un String. String titulo: El título de la caja de diálogo.

int tipoMensaje: Determina el ícono de la caja de diálogo. Los disponibles son (constantes de

la clase JOptionPane): PLAIN_MESSAGE (sin ícono), ERROR_MESSAGE (ícono de error), INFORMATION_MESSAGE (ícono de información), WARNING_MESSAGE (ícono de advertencia), QUESTION_MESSAGE (ícono de interrogación).

Retorno: Retorna el texto que ingresó el usuario o null si cancela.

Ejemplo:

String nombreUsuario = JOptionPane.showInputDialog(frame, // ventana padre "Ingrese su nombre.", // mensaje

"Login", // título JOptionPane.PLAIN_MESSAGE); // tipo de mensaje