swing
TRANSCRIPT
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
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);
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.
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”.
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.
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);
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 ...
} } }
);
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.
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.
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.
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.
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”.
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.
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”.
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); }
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);
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).
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
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