Insérer des elements dans un JComboBox
Explications pour le script:- maTable est une table MySQL avec un champ nom et un champ prenom,
- jcombobox est un JComboBox posé sur un JFrame par exemple
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
/**
* Remplir un JComboBox à partir d'une base de donnée
* http://www.fobec.com/java/981/remplir-jcombobox-partir-une-base-donnee.html
* Axel 2010
*/
public class FromDataBase {
/**
* Exemple sur jcombobox est un JComboBox ajouté sur un jFrame
* @param args
*/
public static void main(String[] args) {
Connection dbConnect = null;
Statement dbStatement = null;
String SQL = "SELECT nom, prenom FROM maTable";
try {
//Supprimer les elements
jcombobox.removeAllItems();
//Sélectionner dans la DB
Class.forName("com.mysql.jdbc.Driver").newInstance();
dbConnect = DriverManager.getConnection("jdbc:mysql:URL", "user", "password");
dbStatement = dbConnect.createStatement();
ResultSet res = dbStatement.executeQuery(SQL);
//Ajouter les elements 1 a 1
while (res.next()) {
jcombobox.addItem(res.getString(0) + " " + res.getString(1));
}
res.close();
dbConnect.close();
} catch (InstantiationException ex) {
Logger.getLogger(FromDataBase.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(FromDataBase.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(FromDataBase.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(FromDataBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Si l'on souhaite enregistrer la valeur sélectionnée dans le JComboBox, il est possible d’utiliser une ArrayList pour stocker l'id correspondant de la base de données.