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

Problema con los eventos del ComboBox

Estas en el tema de Problema con los eventos del ComboBox en el foro de Java en Foros del Web. Buenas tardes!! He creado una aplicación con 5 ComboBox anidados (Pais, Comunidad, Provincia, Municipio y Calle), de manera que en función del Pais que elijas... ...
  #1 (permalink)  
Antiguo 18/05/2012, 06:26
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Problema con los eventos del ComboBox

Buenas tardes!!

He creado una aplicación con 5 ComboBox anidados (Pais, Comunidad, Provincia, Municipio y Calle), de manera que en función del Pais que elijas... el siguiente ComboBox te mostrará las Comunidades de ese pais, y por tanto, al cambiar la Comunidad... te seleccionara las Provincias de ese país, y así sucesivamente.... Lo mismo para el caso de que empiece por Comunidad, Provincia o Municipio.

Yo lo he realizado usando el evento ActionPerformed, por ejemplo:

private void jcmb_paisActionPerformed(java.awt.event.ActionEven t evt) {
combobox_pais(); // Esta función actualiza las comunidades
}


El caso es que con país me funciona siempre, en cualquier caso.
Los otros (que están hechos de la misma manera), sólo funcionan si es el primero que cambio, por ejemplo, si nada mas entrar cambio comunidad... va perfectamente y lo puedo cambiar las veces que quiera, pero... en el momento que intento cambiar otra... esta no funciona, y ninguna de las demás tampoco, salvo país.

Alguna idea de cuál puede ser el problema??

Muchas gracias!!
  #2 (permalink)  
Antiguo 18/05/2012, 06:55
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Problema con los eventos del ComboBox

y un codigito para ver mas gráficamente?
__________________
De nada, hay te encargo +1...
  #3 (permalink)  
Antiguo 21/05/2012, 02:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con los eventos del ComboBox

Ok!!

LISTENERS:
jcmb_pais.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcmb_paisActionPerformed(evt);
}
});
jcmb_municipio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcmb_municipioActionPerformed(evt);
}
});
jcmb_calle.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcmb_calleActionPerformed(evt);
}
});
jcmb_comunidad.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcmb_comunidadActionPerformed(evt);
}
});
jcmb_provincia.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jcmb_provinciaActionPerformed(evt);
}
});

EVENTOS ACTIONPERFORMED:
private void jcmb_paisActionPerformed(java.awt.event.ActionEven t evt) {
combobox_pais();
}
private void jcmb_municipioActionPerformed(java.awt.event.Actio nEvent evt) {
combobox_municipio();
}
private void jcmb_comunidadActionPerformed(java.awt.event.Actio nEvent evt) {
combobox_comunidad();
}
private void jcmb_provinciaActionPerformed(java.awt.event.Actio nEvent evt) {
combobox_provincia();
}

FUNCIONES:
public void combobox_pais() {
try {
Statement stmt_comunidad = conexion.createStatement();
Item pais_seleccionado;
pais_seleccionado = (Item) jcmb_pais.getSelectedItem();

int id_pais_seleccionado = 0;
id_pais_seleccionado = pais_seleccionado.getIdItem();
ResultSet rs_comunidad = stmt_comunidad.executeQuery(" select * from comunidades where idpais="+id_pais_seleccionado);

String nombre_comunidad = "";
int id_comunidad;

try {
jcmb_comunidad.removeAllItems();
}
catch (Exception ex) {
System.out.println("Exception 6: "+ex.getMessage());
}
while (rs_comunidad.next()) {
nombre_comunidad = (String) rs_comunidad.getObject("nombre");
id_comunidad = (Integer) rs_comunidad.getObject("idcomunidad");
Item nodo=new Item(nombre_comunidad, id_comunidad);
jcmb_comunidad.addItem(nodo);
}
//SI EL PAIS NO TIENE COMUNIDADES, MUESTRA DIRECTAMENTE LAS PROVINCIAS
if (jcmb_comunidad.getSelectedItem() == null) {
Statement stmt_provincia = conexion.createStatement();
ResultSet rs_provincia = stmt_provincia.executeQuery(" select * from provincias where idpais = "+id_pais_seleccionado);

String nombre_provincia = "";
int id_provincia;
try{
jcmb_provincia.removeAllItems();
}catch(Exception ex){
System.out.println("Exception 7: "+ex.getMessage());
}

while (rs_provincia.next()) {
nombre_provincia = (String) rs_provincia.getObject("nombre");
id_provincia = (Integer) rs_provincia.getObject("idprovincia");
Item nodo=new Item(nombre_provincia, id_provincia);
jcmb_provincia.addItem(nodo);
}
}
rs_comunidad.close();
}
catch (SQLException ex) {
Logger.getLogger(Formulario_Principal.class.getNam e()).log(Level.SEVERE, null, ex);
}
}

public void combobox_comunidad() {
try {
Statement stmt_provincia = conexion.createStatement();
Item comunidad_seleccionada;
comunidad_seleccionada = (Item) jcmb_comunidad.getSelectedItem();

int id_comunidad_seleccionada = 0;
id_comunidad_seleccionada = comunidad_seleccionada.getIdItem();
ResultSet rs_provincia = stmt_provincia.executeQuery(" select * from provincias where idcomunidad = "+id_comunidad_seleccionada);

String nombre_provincia = "";
int id_provincia;
try{
jcmb_provincia.removeAllItems();
}catch(Exception ex){
System.out.println("Exception 4: "+ex.getMessage());
}

while (rs_provincia.next()) {
nombre_provincia = (String) rs_provincia.getObject("nombre");
id_provincia = (Integer) rs_provincia.getObject("idprovincia");
Item nodo=new Item(nombre_provincia, id_provincia);
jcmb_provincia.addItem(nodo);
}
rs_provincia.close();
}
catch (SQLException ex) {
Logger.getLogger(Formulario_Principal.class.getNam e()).log(Level.SEVERE, null, ex);
}
}

public void combobox_provincia() {
try {
Statement stmt_municipios = conexion.createStatement();
Item provincia_seleccionada;
provincia_seleccionada = (Item) jcmb_provincia.getSelectedItem();

int id_provincia_seleccionada = 0;
id_provincia_seleccionada = provincia_seleccionada.getIdItem();
ResultSet rs_municipios = stmt_municipios.executeQuery(" select * from municipios where idprovincia="+id_provincia_seleccionada);

String nombre_municipio = "";
String codigo_postal = "";
String concatenar_municipio = "";
int id_municipio;

try {
jcmb_municipio.removeAllItems();
}
catch (Exception ex) {
System.out.println("Exception 2: "+ex.getMessage());
}
while (rs_municipios.next()) {
nombre_municipio = (String) rs_municipios.getObject("nombre");
codigo_postal = (String) rs_municipios.getObject("CodPostal");
concatenar_municipio = nombre_municipio + "-" + codigo_postal;
id_municipio = (Integer) rs_municipios.getObject("idmunicipio");
Item nodo=new Item(concatenar_municipio, id_municipio);
jcmb_municipio.addItem(nodo);
}

rs_municipios.close();
}
catch (SQLException ex) {
Logger.getLogger(Formulario_Principal.class.getNam e()).log(Level.SEVERE, null, ex);
}
}

public void combobox_municipio() {
try {
Statement stmt_calles= conexion.createStatement();
Item municipio_seleccionado;
municipio_seleccionado = (Item) jcmb_municipio.getSelectedItem();

int id_municipio_seleccionado = 0;
id_municipio_seleccionado = municipio_seleccionado.getIdItem();
ResultSet rs_calles = stmt_calles.executeQuery(" select * from calles c where c.CodPostal = "
+ "(select m.CodPostal from municipios m where m.idmunicipio ="+id_municipio_seleccionado+")");

String nombre_calle = "";
int id_calle=0;
try{
jcmb_calle.removeAllItems();
}catch(Exception ex){
System.out.println("Excepcion 3: "+ex.getMessage());
}
while (rs_calles.next()) {
nombre_calle = (String) rs_calles.getObject("nombre");
id_calle = (Integer) rs_calles.getObject("idcalle");
Item nodo=new Item(nombre_calle, id_calle);
jcmb_calle.addItem(nodo);
}
rs_calles.close();
}
catch (SQLException ex) {
Logger.getLogger(Formulario_Principal.class.getNam e()).log(Level.SEVERE, null, ex);
}
}

Etiquetas: actionperformed, combobox, evento
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 11:03.