Publié le 28/08/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Remplir un JComboBox a partir d'une base de donnee

A partir d'une requęte dans une base de donnée, voici un exemple pour remplir une JComboBox. En effet, bien souvent la liste contient des valeurs que l'utilisateur de l'application doit sélectionner. Le passage d'une serie de donnée stockée dans une base de donnée à un composant graphique tel qu'un jComboBox est assez rapide à faire.

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.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
28/08/2010
Visualisation
vu 8005 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par jerome dans php5

Excellente classe, merci pour ce petit code qui va me permettre de me passer de ma page igoogle qui ferme vendredi

Publié par beeker dans tuto

Le script fonctionne bien en hebergement mutua1isee

Publié par Fred dans tuto

J'suis d'accord avec Do, PHP est deja un moteur de template.
Disons que le moteur de template permet de separer le code de la vue pour les debutants qui ont besoin qu'on leur impose des bornes...

Publié par mohammed dans java

Bonjour ,Merci pour ce travail ,juste j'ai une question pour ce qui concerne les textes avec les caracteres speciaux comment faire??

Publié par Yannick dans tuto

Sur un de mes sites j'ai vraiment du mal a gerer le gzip sur 1and1, Je vais tout de suite tester tout ca et je vous tiens informe :)