martes, 15 de abril de 2008

MANEJO DE 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. [1]




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:




Valor de Retorno

void

Nombre del Método

addItem(Object item)
Agrega un elemento al combo


Valor de Retorno

Object
Nombre del Método
getSelectedItem()
Retorna el valor seleccionado.


Valor de Retorno

int
Nombre del Método
getSelectedIndex()
Obtiene el índice seleccioando.


Valor de Retorno

void
Nombre del Método
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. [2]




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 [3]










4 comentarios:

Anónimo dijo...

Hola!!!

Revice tu blogger, y te aconsejo que le coloques imagenes, ya que asi se ve muy "Ladrilludo".

Deicy

jorge dijo...

mueatra buena informacion aunque faltan ilustraciones en los temas

Pilar Guzmán dijo...

Hola, tienes buena información pero faltan imagenes.

Gladys Marlen Martinez dijo...

HOLA EL BLOGG TIENE TODA LA INFORMACION,PERO DEBISTE COLOCAR IMAGENES