Carga JComboBox a partir de otro (MySQL)

   Bueno, en la entrada anterior explicaba como cambiar esto, pero ahora para hacerlo con MySQL solo basta cambiar un poco el método. Supongamos que tenemos una tabla llamada "Usuarios", en ella tenemos los campos "Nombre, Apellido, Cedula y Telefono", entonces lo primero crear las variables globales de conexión.
Statement stat = null;
ResultSet resultado = null;
Connection conexion = null;
   Ahora modificamos un poco el método para llenar el combo, cargando la clase de MySQL y las variables para la consulta de forma (un poco) dinámica.
private void llenarcombo2 (String consulta) {
  combo2.removeAllItems();
  try {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   conexion = DriverManager.getConnection ("jdbc:mysql://localhost:3306/prueba","root", "123456");
   stat = conexion.createStatement();
   resultado = stat.executeQuery (consulta);
   while (resultado.next()){
    combo2.addItem (resultado.getObject(1));
   }
  } catch(Exception exp){
   System.out.print(exp);
  }
}
   Por último cambiamos la forma en que se llama el listener.
class ListenerCombo implements ActionListener {
  public void actionPerformed(ActionEvent evt) {
    switch(combo1.getSelectedIndex()){
  case 0:llenarcombo2("SELECT nombre FROM usuarios");break;
  case 1:llenarcombo2("SELECT apellido FROM usuarios");break;
  case 2:llenarcombo2("SELECT cedula FROM usuarios");break;
  case 3:llenarcombo2("SELECT telefono FROM usuarios");break;
  default:llenarcombo2("SELECT nombre FROM usuarios");break;
 }
  }
}
   Y listo, con esto nuestra clase queda así
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;

@SuppressWarnings("deprecation")
public class jComboBox extends JFrame {
 Statement stat = null;
 ResultSet resultado = null;
 Connection conexion = null;
 JComboBox combo1 = new JComboBox();
 JComboBox combo2 = new JComboBox();
 JPanel panel = new JPanel();

 public jComboBox() {
  super("Los ComboBox");
  setLocation(100,100);
  setSize(550,210);
  add(panel);
  combo1.addItem("nombre");
  combo1.addItem("apellido");
  combo1.addItem("cedula");
  combo1.addItem("telefono");
  panel.add(combo1);
  panel.add(combo2);
  llenarcombo2("SELECT nombre FROM usuarios");
  combo1.addActionListener(new ListenerCombo());
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

 private void llenarcombo2 (String consulta) {
  combo2.removeAllItems();
  try {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   conexion = DriverManager.getConnection ("jdbc:mysql://localhost:3306/prueba","root", "123456");
   stat = conexion.createStatement();
   resultado = stat.executeQuery (consulta);
   while (resultado.next()){
    combo2.addItem (resultado.getObject(1));
   }
  } catch(Exception exp){
   System.out.print(exp);
  }
 }

 class ListenerCombo implements ActionListener {
  public void actionPerformed(ActionEvent evt) {
    switch(combo1.getSelectedIndex()){
  case 0:llenarcombo2("SELECT nombre FROM usuarios");break;
  case 1:llenarcombo2("SELECT apellido FROM usuarios");break;
  case 2:llenarcombo2("SELECT cedula FROM usuarios");break;
  case 3:llenarcombo2("SELECT telefono FROM usuarios");break;
  default:llenarcombo2("SELECT nombre FROM usuarios");break;
 }
  }
 }

 public static void main(String[] arg) {
  JOptionPane.showMessageDialog(null,"Los JComboBox....\n");
  JOptionPane.showMessageDialog(null,"By Carlitox ("+
   "http://calitoxenlaweb.blogspot.com)");
  jComboBox app = new jComboBox();
  app.setVisible(true);
 }
}

5 Comentarios

Escribir Comentario
30 de julio de 2012, 15:28 delete Este comentario ha sido eliminado por el autor.
avatar
Anónimo
AUTOR
30 de julio de 2012, 16:07 delete

probe pero al momento de seleccionar otra ciudad no cambia?

Responder
avatar
Anónimo
AUTOR
30 de julio de 2012, 16:12 delete

seguire probando y te cuento

Responder
avatar
30 de julio de 2012, 16:39 delete

Escribe tu código para ver que haces exactamente, fíjate en el método "llenarcombo2" y el listener.

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión EmoticonEmoticon