style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

[DUDA] Como hago 1 JCombobox dependiente de otro, y que los 2 esten enlazados a respectivas tablas en la BD(MYSQL)

Saludos Comunidad de JavaMexico.

Este es mi primero post disculpen si los llegase a molestar mucho pero es que estoy empezando a indagar bastante con java.

lo que quiero hacer es el tipo caso de que en un jcombobox me cargue los departamentos y en otro jcombobox me cargue las ciudades de ese departamente, obviamente los 2 enlazados a su respectiva tabla.

actualmente la forma en que enlazo es por Bind -> elements ... escojo la conexion, la tabla, en el renderer pues coloco lo que quiero mostrar en este caso el nombre..

pero mi duda esta con la dependencia del Jcmbbx_ciudades.

Gracias de antemano, y espero llegar a ser asi de bueno como la mayoria que he visto aca.

PD: estoy utilizando netbeans 7, JPA: eclipseLink, BD: MySQL.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hombre gracias

hombre gracias pero en realidad ese proyecto no me ayudo pues no hay dependencia de jcmbbx
Photobucket

@Llenobrac Pero tiene lo

@Llenobrac Pero tiene lo escencial para que TU MISMO hagas la implementación.

Un combo dependiente básicamente cambia los datos del combo model cuando otro elemento se haya seleccionado.

Ejemplo:

ComboModel uno  = UnComboModel()
ComboModel dos  = OtroComboModel()

JCombo a = new JCombo( uno )
JCombo b = new JCombo( dos )

...
a.addSomeWhateverListener ( new XyzListener() {
    public void changed( Event xyz ) {

        b.setModel( crearIOtroComboModelCon ( a.selectedItem ) )
   }
});
...
ComboModel crearOtroComboModelCon(  Object  llave ) {  
      createQueryUsing( llave )
      ...
}

El detalle exacto de como se hace un combo y como se le llenan los datos lo puedes ver en el código sugirieron. ¿Que es lo que llevas?

Imagen de cororo

hola; aqui te dejo como

hola;
aqui te dejo como lo ise yo, pero es icefaces con JSF 2.0

Primero, tienes que declara una variable donde el combobox guarde el dato que seleccionaste mediante el valueChangeListener="#{enlinea.sapitoa}", cuando tu seleciones un nuevo valor el valuechangelistener ira al bean enlina metodo sapitoa, sapitoa es un ValueChangeEvent. Y guardara el valor en value="#{enlinea.estacion1}", que como dijimos "enlinea" es el bean y "estacion1" es un string

Yo asi agarro el nuevo elemento

<ice:outputLabel value="Estacion" />
 <ice:selectOneMenu id="cbestacion" partialSubmit="true" valueChangeListener="#{enlinea.sapitoa}" value="#{enlinea.estacion1}" >
 <f:selectItems value="#{enlinea.estacion}"/>
 </ice:selectOneMenu>

Ahora aqui es el codigo del ValueChangeEvent

 public void sapitoa(ValueChangeEvent pop) {
estacion1=pop.getNewValue();

}

Ahora segun lo que escojiste va abuscar en la base de datos, lo ise de la sig manera:

            try {
              Class.forName("com.mysql.jdbc.Driver").newInstance();

          } catch (Exception ex) {

          }

        try {
            lista.clear();
            conexion = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/sapo", "root", "carolina");
            statement =null;
            statement= (Statement) conexion.createStatement();
            rs = statement.executeQuery("SELECT * FROM enlinea where estacion='"+ estacion1 +"'");
           
                while(rs.next()){                                                   //cone sto leo de la bse de datos y coloco
                setEstado(rs.getString("estado"));
                lista.add(new auxenlineatabla( estado);
            }
           
            conexion.close();

        } catch (SQLException ex) {
            Logger.getLogger(enlineatabla.class.getName()).log(Level.SEVERE, null, ex);
        }

Ahora como ya guardamos en la variable estado1, lo del primer combobox, y ya leimos de la base de datos segun lo que contiene estado1 lo populamos en la lista "lista" como se ve en el while(rs.next()) que mientras el resultset tenga mas de 1 renglon seguira leyendo de la base y creara un nuevo elemento de lista, en la lista(jajaj valgame la redundancia). Ahora lo llenamos en el siguiente combo box como tu lo deceas

quedaria asi:

<ice:outputLabel value="Estado"/>
<ice:selectOneMenu  partialSubmit="true" value="#{enlinea.estado1}" valueChangeListener="#{enlinea.sapitoa}" id="cbelemento" >
<f:selectItems  value="#{enlinea.lista}" />
</ice:selectOneMenu>

Ahora como ves en este ultimo combo el valor value="#{enlinea.estado1}" esdonde se gravara ahora el valor del segundo combobox para que agas lo que quieras con ese valor.

IMPORTANTE: aviluta el partialsubmit para que no tengas que precionar botones para refresqueo de la pag o formulario.

Espero y te sirva esta pequeña guia.

Imagen de andres florez

combo box dependiente java netbeans con mysql

alguien me puede colaborar estoy haciendo un programa para la reservacion de hataciondes de hotel con tres combobox y trae el numero de habitacion ,el tipo de habitacion (sencilla doble grupal) y el tercero el estado de la habitacion agradesco su ayuda

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">