Populando JComboBox com dados do MySQL

2 respostas
m4des

Pessoal estou com problemas para popular um JComboBox com dados do MySQL, quando uso JComboBox aparece apenas dois valores nele, estou usando o codigo abaixo:

package aplicativos;
import java.sql.*;
import javax.swing.*;
public class Collations {
	JFrame f = new JFrame("Populando JComboBox");
	Connection c;
	PreparedStatement stmt;
	ResultSet rs;
	public Collations() {
		f.setLayout(new java.awt.FlowLayout());
		f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		JComboBox combo = null;
		try{
			Class.forName("com.mysql.jdbc.Driver");
			c = DriverManager.getConnection("jdbc:mysql://---/---", "---", "---");
			stmt = c.prepareStatement("SHOW COLLATION");
			rs = stmt.executeQuery();
			ResultSetMetaData rsmd = rs.getMetaData();
			String[] string = new String[rsmd.getColumnCount()];
			while(rs.next()){
				for(int i=1; i < 3; i++)
					string[i] = rs.getString(i);
			}
			combo = new JComboBox(string);
		}
		catch(Exception e){
			e.printStackTrace();
		}
		f.getContentPane().add(combo);
		f.pack();
		f.setVisible(true);
	}
	public static void main(String[] args) {
		new Collations();
	}

}

Se puderem me ajudar, agradeço.

2 Respostas

Adriano_Almeida

Instancie o combo antes de usá-lo, e no while(rs.next()) mande o combo fazer um .addItem(Object obj).

Só não entendi o “for” que vc tinha no while. Aí tirei… qualquer coisa coloca ele de volta…

Obs: Não testei o código. Mas deve ser isso aí!

package aplicativos;
 import java.sql.*;
 import javax.swing.*;
 public class Collations {
 	JFrame f = new JFrame("Populando JComboBox");
 	Connection c;
 	PreparedStatement stmt;
 	ResultSet rs;
 	public Collations() {
 		f.setLayout(new java.awt.FlowLayout());
 		f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 		JComboBox combo = null;
 		try{
 			Class.forName("com.mysql.jdbc.Driver");
 			c = DriverManager.getConnection("jdbc:mysql://---/---", "---", "---");
 			stmt = c.prepareStatement("SHOW COLLATION");
 			rs = stmt.executeQuery();
 			ResultSetMetaData rsmd = rs.getMetaData();
 			String[] string = new String[rsmd.getColumnCount()];
 			combo = new JComboBox();
                         while(rs.next()){
 					combo.addItem(rs.getString());
 			}
 			
 		}
 		catch(Exception e){
 			e.printStackTrace();
 		}
 		f.getContentPane().add(combo);
 		f.pack();
 		f.setVisible(true);
 	}
 	public static void main(String[] args) {
 		new Collations();
 	}
 
 }
m4des

Obrigado pafuncio comsegui fazer, o for no caso eu estava usando porque os resultados de SHOW COLLTATION variam de 1 a 6, então usei o for para pegar 3 dessas variações

Valeu mesmo pafuncio!

Criado 3 de dezembro de 2006
Ultima resposta 3 de dez. de 2006
Respostas 2
Participantes 2