miércoles, 9 de abril de 2008

¿COMO MANEJAR JCOMBOBOX EN JAVA?

Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar datos que provienen de un conjunto finito y muy pequeño de posibles respuestas, esto significa que cada vez que se ejecute el programa, el usuario estará proporcionando las mismas respuestas.

Ejemplo de esta clase de datos, son por ejemplos Municipio en BC, las posibles respuestas solo son (Tecate, Tijuana, Mexicali, Ensenada, Rosarito), otro ejemplo es Sexo (Hombre, Mujer), etc.

Para situaciones como esta, existen componentes que permiten programar por adelantado las posibles respuestas, y el usuario solo debe seleccionar la respuesta apropiada , en lugar de tener que escribirla.

Este componente ComboBox nos permite definir en primera instancia un conjunto de datos o valores respuestas asociados a una caja de edición cualesquiera, así ahora el usuario tendrá la oportunidad de seleccionar un dato del conjunto de datos o respuestas ya predefinido.

Este componente ComboBox tiene dos partes, una parte de encabezado, para poner el nombre del grupo de respuestas( por ejemplo municipios, sexo, etc.).

La segunda parte es la lista de opciones o respuestas que se debe cargar al tiempo de diseño de la ventana.

Al momento de ejecución del programa, toda la lista de respuestas, estarán a la vista del usuario, para que este ultimo la seleccione.
Recordar que el usuario al momento de ejecución del programa, solo vera el encabezado, para seleccionar su respuesta deberá apretar la flechita que esta a un lado del encabezado.
Ejemplo:

import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class prog16 {
//declaracion, creacion e inicializacion de componentes, objetos y variables
static JFrame ventana= new JFrame();
static JPanel p1= new JPanel(); static JPanel p2= new JPanel();
static String[] lista={"municipios","tecate","tijuana","ensenada","tecate"};
static JComboBox municipios = new JComboBox(lista );
static JTextField jt1=new JTextField(15); static JButton jb1= new JButton("OK");
// parte principal de programa

public static void main(String[] args)
{ // area de definicion de propiedades de el objeto
ventana.setTitle("mi programa");
ventana.setDefaultCloseOperation(ventana.EXIT_ON_CLOSE);
ventana.getContentPane().setLayout(new GridLayout(2,0));
//cargando panel1 con combobox y definiendo titulo
p1.setLayout(new GridLayout(1,0));
//observar que index cero es el titulo (aunque es un elemento mas)
municipios.setSelectedIndex(0); p1.add(municipios);
//cargando segundo panel con jbutton y jtextfield
p2.add(jb1); p2.add(jt1);
ventana.getContentPane().add(p1); ventana.getContentPane().add(p2);
ventana.pack(); ventana.setVisible(true);
jb1.addMouseListener( new MouseAdapter()
{ public void mousePressed(MouseEvent e){
// la propiedad getselecteditem() regresa un objeto
jt1.setText(String.valueOf( municipios.getSelectedItem() ) );
}} );
}; // termina main
} // termina clase[1]


Utilizar la clase JComboBox

Para utilizar la clase JComboBox en Java, hay que seguir una serie de pasos en los cuales se definirán variables y métodos de esta clase como se muestra en la siguiente figura:



Aquí el JComboBox, está mostrando una lista en la que se dan varias opciones predeterminadas del programa, y que para cada opción hay una acción al escogerla.

Para utilizar la clase JComboBox en un programa de Java, es necesario primero adicionar lo siguiente:
String[] flechaStrings = {"imagen 1", "imagen 2", "imagen 3", "imagen 4", "imagen 5"};

Aquí primero se definen los valores que se van a tomar, en este caso los carros, para aceptar la variable de tipo String, y que va a ser util al momento de que se tomen estos valores en lista adicionandola a la clase JComboBox, ya veremos como.

En las siguientes instrucciones se darán pasos para el adicionamiento de variables a la clase JComboBox.

public clase()
{ JComboBox lista = new JComboBox(flechaStrings);
lista.setSelectedIndex(0);

Aquí estamos primero tomando la clase para que dentro de esa clase, defina una variable lista y la tome como como new JComboBox, y que además adquiera los valores de (flechaStrings); que ya habíamos definido anteriormente. [2]


JComboBox
los JComboBox son muy parecidos a las Listas, excepto que estos también permiten la introducción de los datos, las maneras para crear son muy similares a las de JList:
new JComboBox();
new JComboBox(Object[] datos);
new JComboBox(Vector datos);
Lo métodos son:
  • void : addItem(Object item). Agrega un elemento al combo
  • Object: getSelectedItem(). Retorna el valor seleccionado.
  • int: getSelectedIndex(). Obtiene el índice seleccioando.
  • void: setEditable(boolean tipo). Determina si sólo mostrara los valores (false) o si se
    pueden escribir nuevos valores (true)
Y al igual que que JList, tiene un Listener que es: ItemListener que sólo implementa un método: public void itemStateChanged(ItemEvent e) que se realiza cuando se cambia a un item.
El registro del Listener se realiza con el método addItemListener de la clase JComboBox[3]

"...Utilizar un JComboBox es muy sencillo ya que únicamente necesitamos un arreglo de String para iniciarlo y si queremos podemos añadir más elementos de una manera muy sencilla. El JComboBox es muy útil cuando queremos mostrar una lista muy larga de la que solamente se va a elegir una sola opción o cuando no tenemos mucho espacio. Se podría utilizar en una calculadora para escribir funciones y poder ver cuales fuerno las últimas que fueron seleccionadas debido a que podemos seguir añadiendo elementos.

El primer archivo incluye un programa en el que podemos seleccionar que imagen mostrar mediante un JComboBox, el segundo archivo incluye las imágenes necesarias para que el programa pueda correr.

El constructor de un JComboBox es muy sencillo, lo único que recibe es un arreglo de String. Recuerda que para iniciar un arreglo en una sola línea puedes utilizar las llaves { } como se muestra en la fotografía.

Lo único que es importante mencionar del uso del JComboBox es cómo obtener lo que está seleccionado ya que es muy importante para las aplicaciones que usamos al manejar eventos saber qué seleccionó el usuario. Para conseguir esto podemos utilizar el método getSelectedItem() del JComboBox sólo hay que recordar que el método nos devuelve un Object y tenemos que hacerle un cast a String (poniendo la palabra String entre parentesis como se ve en la imágen).

También es muy sencillo añadir más elementos a un JComboBox una vez que ya está creado. Para hacerlo basta con utilizar el método addItem() que recibe un String.

Para poder escuchar eventos el JComboBox debe de tener un ActionListener que agregamos de la misma manera en que agregaríamos uno a un JButton.

¿Cómo utilizar un JComboBox?



También es muy sencillo añadir más elementos a un JComboBox una vez que ya está creado. Para hacerlo basta con utilizar el método addItem() que recibe un String.
Para poder escuchar eventos el JComboBox debe de tener un ActionListener que agregamos de la misma manera en que agregaríamos uno a un JButton





El constructor de un JComboBox es muy sencillo, lo único que recibe es un arreglo de String. Recuerda que para iniciar un arreglo en una sola línea puedes utilizar las llaves { }


Lo único que es importante mencionar del uso del JComboBox es cómo obtener lo que está seleccionado ya que es muy importante para las aplicaciones que usamos al manejar eventos saber qué seleccionó el usuario. Para conseguir esto podemos utilizar el método getSelectedItem() del JComboBox sólo hay que recordar que el método nos devuelve un Object y tenemos que hacerle un cast a String (poniendo la palabra String entre parentesis como se ve en la imágen). [4]



BIBLIOGRAFIA

[1] http://www.programacionfacil.com/java:jcombobox

[2] http://www.gfc.edu.co/estudiantes/anuario/2003/sistemas/orlando/SGML/Jcombobox/c22.html

[3] http://perseo.cs.buap.mx/~danguer/projects/curso_java/manual/node37.html

[4] http://www.magusoft.net/trials/combobox.html

8 comentarios:

Gladys Marlen Martinez dijo...

HOLA TU INFORMACION SOBRE EL BLOGG ES MUY BUENA. MANEJAS BIEN LAS IMAGENES SOBRE TODO LA CONEXION A BASE DE DATOS.
CHAO

yicell paz dijo...

HOLA, ESTE BLOGG ESTA MUY INTERESANTE LA INFORMACION ESTA MUY COMPLETA Y TIENE BUENA IMAGENES

zulay sanchez dijo...

hola la informacion esta completa

ISABEL CARVAJAL dijo...

EL BLOG ESTA COMPLETO AUNQUE HACE FALTA GRAFICAR UN POCO MAS Y ALGUNOS EJEMPLOS NO SON MUY CLAROS.

TECNOLOGIAS dijo...

Le falto otra vez definir las clases AWT y SWING y tener un poco mas de cuidado al subir imágenes ya que en dos no es muy legible el código. excelente ejemplo del JCOMBOX.

STIVEN HERNANDEZ

jorge dijo...

es un buen blog cuenta con buena informacion e ilustraciones que ayudan al enterder los temas

Pilar Guzmán dijo...

Hola, Bastante información pero faltan imagenes...

MARISA FORERO dijo...

hola me parece q la informacion es completa