Java - Combo box

 
Vista:
Imágen de perfil de Julian

Combo box

Publicado por Julian (16 intervenciones) el 07/12/2017 16:23:39
Buenas días !
Buenos dias lo que pasa es que estoy haciendo unos combo box dependientes y quiero que cuando se escoja un pais que no tenga departamentos quite los items de los demas combo box, además lo que pasa es que se me está duplicando las ciudades y no se que hacer

Gracias de ante mano !

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Cargar combobox de los paises
void llena_combo_paises() {
    try {
     Statement st = cnn.createStatement();
     ResultSet rs = st.executeQuery("Select * from paises");
     while(rs.next())
     {
	     paises.addItem(rs.getString("nom_pais"));
	     paisese.addItem(rs.getString("nom_pais"));
     }
    } catch (SQLException ex) {
        Logger.getLogger(Clie.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null,ex);
    }
}
 
// Cargar combobox de los departamentos
void llena_combo_dto() {
    try {
     String pais = paises.getSelectedItem().toString();
     Statement st = cnn.createStatement();
     ResultSet pa = st.executeQuery("select cod_pais from paises where nom_pais='"+pais+"'");
        if(pa.next()){
        String cod_pais = pa.getString("cod_pais");
        ResultSet rs = st.executeQuery("Select * from dpo where cod_pais='"+cod_pais+"'");
            while(rs.next()){
            departamentos.addItem(rs.getString("nom_dpo"));
            departamentose.addItem(rs.getString("nom_dpo"));
            }
        }
    } catch (SQLException ex) {
        Logger.getLogger(Clie.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null,ex);
    }
}
// Cargar combobox de las ciudades
void llena_combo_ciu() {
    ciudades.removeAllItems();
    String departamento = departamentos.getSelectedItem().toString();
    String pais = paises.getSelectedItem().toString();
    try {
     Statement st = cnn.createStatement();
     ResultSet pa = st.executeQuery("select cod_pais from paises where nom_pais='"+pais+"'");
      if(pa.next()){
 
      String cod_pais = pa.getString("cod_pais");
        ResultSet cod = st.executeQuery("Select cod_dpo from dpo where nom_dpo='"+departamento+"' and cod_pais='"+cod_pais+"' ");
        if(cod.next()){
 
        String cod_dpo = cod.getString("cod_dpo");
        ResultSet rs = st.executeQuery("Select * from ciudad where cod_dpo='"+cod_dpo+"' and cod_pais='"+cod_pais+"'");
            while(rs.next()){
            ciudades.addItem(rs.getString("nom_ciu"));
            ciudadese.addItem(rs.getString("nom_ciu"));
            }
        }
     }
    } catch (SQLException ex) {
        Logger.getLogger(Clie.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null,ex);
    }
}
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
Imágen de perfil de kingk
Val: 15
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Combo box

Publicado por kingk (108 intervenciones) el 07/12/2017 22:46:30
Hola, La razón por la que se duplican los items es porque no especificas la eliminación de items en los métodos. Así que cada vez que llamas a los métodos de llenar items se adiciona a los items anteriores.
Coloca en cada método el siguiente código:
void llena_combo_países(){
países.addAllItems();
país ese.addAllItems();

void llena_combo_dato(){
departamentos.removeAllItems();
departamentos. removeAllItems();

void llena_combo_ciudad(){
ciudades.removeAllItems();
ciudad ese.removeAllItems();

Espero haberte ayudado.
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