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); } }
Recibe notificaciones por correo
5 Comentarios
Escribir Comentarioprobare
Responderprobe pero al momento de seleccionar otra ciudad no cambia?
Responderseguire probando y te cuento
ResponderEscribe tu código para ver que haces exactamente, fíjate en el método "llenarcombo2" y el listener.
ResponderLamentablemente 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