Java - JComoboBox y Hashtable

 
Vista:

JComoboBox y Hashtable

Publicado por Nowak (13 intervenciones) el 13/01/2005 20:30:18
Yo se meter en un JComboBox las claves de una hastable =>
if (numeroClientes>0)
{
int i=0;
for (Enumeration e = MenuUnef.clientes.keys(); e.hasMoreElements(); )
{
Sclientes[i] = new String(e.nextElement().toString());
i++;
}
}

Con esto meto los valores en un array de String que luego pondre para que coja los datos el JComboBox.

Pero mi problema es como hacer que en vez de coger la clave me coja un dato de la hastable (para ser mas precisos quiero que me coja el nombre de cliente siendo el numero de dni la clave de esta hashtable => dni(clave), nombre, apellido1, apellido2) para luego meterlo en un array de String con todos los nombres y luego en un comboBox (lo de meterlo en el comboBox teniendo el array de String sí que se hacerlo.

Gracias por anticipado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:JComoboBox y Hashtable

Publicado por Yamil Bracho (2315 intervenciones) el 13/01/2005 20:38:30
Es mas facil usar un iterator. Para recorrer los valores haces :

it = map.values().iterator();
while (it.hasNext()) {
Object value = it.next();
}

Si quieres recorrer las claves haces :
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JComoboBox y Hashtable

Publicado por Nowak (13 intervenciones) el 13/01/2005 20:50:22
Es la primera vez que oigo la palabra iterator.

No se como funciona y como aplicarlo a mi codigo para que haga lo que esta haciendo pero con iterator. De la manera que lo quiero hacer (con hashtable y enumerator no se puede hacer)???? Me resultaria mas facil ya que, como he dicho, no he dado map en clase.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:JComoboBox y Hashtable

Publicado por Yamil Bracho (2315 intervenciones) el 14/01/2005 13:39:28
Para recorrer una estructura de datos que Java proporciona como ArrayList o HashMap siempre uso un iterator. Para adaptarlo a tu codigo usa algo como

for ( Iterator it = MenuUnef.clientes.values().iterator(); it.hasNext();) {
combo.addItem( (String) it.next());
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JComoboBox y Hashtable

Publicado por Nowak (13 intervenciones) el 14/01/2005 16:22:04
cuando hago eso me da error en ejecucion de ClassCastException
Entoncens he puesto "combo.addItem((String) it.next().toString());"
Pero me rellena el combo con un valor muy raro.
¿Como sabe el combo que yo quiero meterle el nombre y no el apellido1 por ejemplo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:JComoboBox y Hashtable

Publicado por Yamil Bracho (2315 intervenciones) el 14/01/2005 20:27:07
He visto el JDK y addItem tiene una sobrecarga para que le pases un objeto o le pases un String. Puedes hacer algo como:

combo.addItem( it.next())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JComoboBox y Hashtable

Publicado por Nowak (13 intervenciones) el 14/01/2005 20:35:08
Poniendo combo.addItem(it.next()) me sigue añadiendo un valor muy raro al combo (algo asi como el nombre de la hashtable@ y un numero con letras) yo lo que querria es que se me añadieran los valores que tiene el campo nombre de mi hashtable. Mi hastable tiene estos valores: nombre, apellido1, apellido2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¡¡¡POR FIN!!!

Publicado por Nowak (13 intervenciones) el 15/01/2005 14:53:26
¡¡¡POR FIN LO HE CONSEGUIDO!!!
Finalmente lo he conseguido hacer con Enumeration.

for (Enumeration e = MenuUnef.clientes.keys(); e.hasMoreElements(); )
{
clave = e.nextElement().toString();
objcli = (Cliente) MenuUnef.clientes.get(clave);
Sclientes[i] = new String(objcli.getNombre().toString());
i++;
}

Yamil muchas gracias por prestarme tu atencion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar