Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Llenar varios combobox con un Comboboxmodel

Estas en el tema de Llenar varios combobox con un Comboboxmodel en el foro de Java en Foros del Web. Miren tengo el siguiente problema, tengo un combobox padre se puede decir y 10 combo box hijos. El combo box padre tiene como valores 1 ...
  #1 (permalink)  
Antiguo 28/05/2014, 13:06
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
Pregunta Llenar varios combobox con un Comboboxmodel

Miren tengo el siguiente problema, tengo un combobox padre se puede decir y 10 combo box hijos.


El combo box padre tiene como valores 1 y 2 por ejemplo.
Y los 10 hijos tienen como valor juan, pedro, pablo si el padre tiene 1. Si el padre tiene 2 los valores que toman son jose, ramon, isac.


Los valores los tomo de una base de datos y al momento de llenar los comboboxhijos se llenan correctamente, pero si cambio el valor de uno, cambian todos. Mi codigo es mas o menos este.

Código:

        int dato;
        dato=cmbAnclajeNivel4.getSelectedIndex(); //Este dato lo utilizo para una validacion, determina si se le va a asignar los primeros 3 nombres o los segundos 3 nombres.

        DefaultComboBoxModel modelo = new DefaultComboBoxModel(); //Se crea el comboboxmodel


        modelo=BDD.llenarcombo(dato); //Se manda a llamar al metodo de la clase BDD. llena el combo correctamente.


        //Se llenan los combos con los datos correctos.
        cmbOperadorDe1.setModel(modelo);
        cmbOperadorDe2.setModel(modelo);
        cmbOperadorDe3.setModel(modelo);
        cmbOperadorDe4.setModel(modelo);
        cmbOperadorDe5.setModel(modelo);
        cmbOperadorDe6.setModel(modelo);
        cmbOperadorA1.setModel(modelo);
        cmbOperadorA2.setModel(modelo);
        cmbOperadorA3.setModel(modelo);
        cmbOperadorA4.setModel(modelo);
        cmbOperadorA5.setModel(modelo);
        cmbOperadorA6.setModel(modelo);
El problema es que al cambiar uno de los combos OperadorDe1 por ejemplo cambian todos los demas.

Gracias
  #2 (permalink)  
Antiguo 28/05/2014, 22:28
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Llenar varios combobox con un Comboboxmodel

Hola,

Tienes que crear una instancia para cada combobox, lo que te está pasando es que cuando cambias el valor al combobox, el modelo toma ese valor y lo cambia en todos...

Saludos,
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #3 (permalink)  
Antiguo 30/05/2014, 14:00
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
Respuesta: Llenar varios combobox con un Comboboxmodel

Alguna idea aparte del Comboboxmodel para llenar muchos combos diferentes y no estar leyendo cada que se modifica un combo a la base de datos??

Gracias por la ayuda.
  #4 (permalink)  
Antiguo 30/05/2014, 14:22
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Llenar varios combobox con un Comboboxmodel

No estoy seguro de lo que quieres hacer, pero quizás debas guardar los datos que traes de la base de datos en memoria (en un arraylist por ej), y luego llenas los modelos con esos datos, y cuando cambias un valor, lo haces sobre dichos datos, y luego lo guardas, una vez que haya confirmado toda la modificación...

Repito, no estoy seguro de lo que quieres hacer...
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #5 (permalink)  
Antiguo 30/05/2014, 16:28
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
Respuesta: Llenar varios combobox con un Comboboxmodel

Mira tengo esta tabla en mi ventana, y quiero llenar los combos dependiendo del nivel.




Solo hay 2 niveles, 1200 y 1300.

Areas hay varias en cada uno de los Niveles.
De ahi se tomaran los datos con un getSelectedItem y se mandara a una base de datos que guarde todo.

Lo unico que necesito es una idea de como llenar los comboBox cuando cambie de nivel 1200 a 1300 o visceversa. Supongo que tu idea del arraylist serviría, usando un removeAllItems() y recorriendo con un while la lista y additem.
  #6 (permalink)  
Antiguo 30/05/2014, 20:45
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Llenar varios combobox con un Comboboxmodel

A ver si esto te da una idea, suponemos que tienes 2 combobox, jComboBox1 y jComboBox2 (lo hago así para simplificar, vos tendrás más combos):

Código Java:
Ver original
  1. //mapa donde guardarás los datos
  2.         Map<Integer, List> map= new HashMap<Integer, List>();
  3.        
  4.         //lista de las areas
  5.         List<String> areas1200= new ArrayList<>();
  6.         List<String> areas1300= new ArrayList<>();
  7.         /*
  8.         codigo para
  9.         llenar las areas desde la bd
  10.         */
  11.        
  12.        
  13.        
  14.         //inserto las areas en el map
  15.         map.put(1200, areas1200);
  16.         map.put(1300, areas1300);
  17.        
  18.         //modelos poner dentro de un bucle para llenar todos los combobox
  19.         ComboBoxModel m= new DefaultComboBoxModel(map.keySet().toArray());
  20.         jComboBox1.setModel(m);
  21.        
  22.         jComboBox1.addActionListener(new ActionListener() {
  23.             @Override
  24.             public void actionPerformed(ActionEvent e) {
  25.                 Integer v= (Integer) jComboBox1.getSelectedItem();
  26.                 List<String> values= map.get(v);
  27.                 ComboBoxModel m2= new DefaultComboBoxModel(values.toArray());
  28.                
  29.                 jComboBox2.setModel(m2);
  30.             }
  31.         });
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #7 (permalink)  
Antiguo 02/06/2014, 09:30
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
Respuesta: Llenar varios combobox con un Comboboxmodel

Muchas gracias, me sirvio bastante todo lo que me sugeriste.
Saludos

Etiquetas: clase, combobox, metodo, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:38.