JComboBox dinámico

ren
21 de Enero del 2006
hola, necesito actualizar un JComboBox dinámicamente
tengo dos y cuando se selecciona un valor en alguno, el otro , deberia actualizarse .... sabe alguien que metodo utilizar, no me ha servido ni validate ni repaint .
gracias


derneume
21 de Enero del 2006
Hola, yo tengo en mi proyecto una parte que es tal cómo dices. Tengo tres combo box Piezas (no depende de ningún otro) , y luego tengo Operario que cargo los datos de los trabajadores. Finalmente tengo Orden deTrabajo, que en un principio lo tengo desactivado, que deberá mostrar las ordenes para las que trabaja el operario seleccionado. Cuando se selecciona un operario hago:
try{
cod_op=jComboOperario.getSelectedItem().toString(); // obtengo el codigo seleccionado en el combo de operario
jComboOrdenConsumidora.setEnabled(true); // activo la lista de ordenes de trabajo
llenarListOrdenesTrabajo(cod_op); // llamo a listar ordenes del operario
}catch(NullPointerException e){
}
y después en llenarListOrdenesTrabajo, simplemente hago la select de ordenes de trabajo del operario mandado, de esta forma:

sentencia=conaux.createStatement();
cadSentencia="select ot,descripcion from comprador.orden where ot in (select ot from comprador.trabaja where cod_o in (select cod_o from comprador.operario where (cod_o||' '||nombre||' '||apellido1|| ' '||apellido2) like '"+ cod_op+"')) order by 1 desc";
resultado=sentencia.executeQuery(cadSentencia);
while(resultado.next()){
jComboOrdenConsumidora.addItem(resultado.getString(1)+" "+resultado.getString(2));
}

Y eso me funciona perfectamente. Espero que te sea de utilidad. Luego si lo que te pasa es que quieres borrar los elementos que contanga la lista. Usa

jComboTuCombo.removeAllItems();

Como ves en ningún momento uso revalidate() ni repaint(), simplemente agrego y borro elementos del combo directamente.

Espero que te sea de utilidad.
www.josemanuelmunozborreguero.tk