JAVA: Comment remplir une JComboBox....

Résolu/Fermé
Yserman - 3 mars 2005 à 15:27
 chaimae - 21 oct. 2017 à 12:32
Voilà salut à tous

Mon problème c'est en fait que je dois remplir une JComboBox avec les valeurs d'une des colonnes d'une de mes tables.

Ca doit être assez simple mais bon...


D'avance merci
A voir également:

16 réponses

Une fois connecté à la base de donnés : ces instructions vous permettrons de remplir votre combo
(j'ai essayé et ça a marché)
/*------------------------- Method de remplissage du jComboBox ---------------------------*/
void remplir_Jcomb() {
   String req= "SELECT Nom_Champ1,Nom_Champ2 FROM  Nom_Table  ORDER BY  Nom_Champ1"; 
			Statement stmt;
		
		    try {
	stmt = con.createStatement();
	ResultSet res = stmt.executeQuery(req);
	while(res.next()){
	jComboName.addItem(res.getString(indexe de la colonne));     
/* le nom du jComboBox est jComboName et  <indexe de la colonne > est l'indexe de la colonne dont vous voulez afficher dans le combobox ,elle peut prendre l'une des valeurs 1,2 . .  
		}
		res.close();
	} catch (SQLException e) {
	e.printStackTrace();
		}
			
		}
//Fin remplir_Jcomb()
14
Merci Bouassida
0
ah j'ai trouver mer ci ca marche

le code :

choixfournisseur = new JComboBox ();
choixfournisseur.setMaximumRowCount(5);
choixfournisseur.setBounds (550, 120,150,30);
choixfournisseur.setBackground(Color.WHITE);
cont.add (choixfournisseur);

Vector listenom=AccesBD.creerVecteur1Colonne("SELECT distinct Nom from Fournisseur ");
choixfournisseur.removeAllItems();
for(int i=0;i<listenom.size();i++)
choixfournisseur.addItem((String)(listenom.elementAt(i)));
3
Utilisateur anonyme
3 mars 2005 à 18:42
Bonjour,

Si on regarde la documentation de la classe JComboBox, on trouve comme paramètres :
- au niveau du constructeur: rien, un ComboBoxModel, un tableau d'Object ou un Vector;
- au niveau des méthodes : un Object.

cf : http://java.sun.com/j2se/1.5.0/docs/api/

A partir de là, il suffit de récupérer les données de ta table sous une des formes citées plus haut, et d'utiliser soit un des constructeurs, soit la méthode.

Il ya a un excellent tutoriel sur le site de Sun : "How to Use Combo Boxes"

a+
2
Merci pour ces messages ça m'a bien aidé
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
4 mars 2005 à 10:33
Donc, tu utilises un objet Recordset?

String query = "SELECT COF_NAME, PRICE FROM COFFEES";
ResultSet rs = stmt.executeQuery(query);
JComboBox j = new JComboBox();
while (rs.next()) {
rs.getString("NomDeLaColonne");
  j.addItem(rs.getFloat("PRICE"));
}



ps: Je n'ai jamais touché aux JComboBox et je ne me souvenais plus de la syntaxe des requêtes! Vive la java doc et le site de sun
Références:
http://java.sun.com/j2se/1.4.2/docs/api/index.html
http://java.sun.com/docs/books/tutorial/jdbc/basics/retrieving.html
1
Bonjour,
j'essaie de remplir un jCombox à partir d'une base de donnée (serveur MySQL) mais en affichant l'interface j'ai un boucle infinie je ne peut pas corriger cette erreur
SVP aider moi à résoudre ce problème (je travaille en NetBeans)
voici le code
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package asterisk_teste;

/**
*
* @author
*/
import java.sql.*;
import java.io.*;
import java.util.*;
import java.sql.DriverManager;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.event.ListDataListener;
public class SQLrequete

{ public static Administrateur ad =new Administrateur();
public ResultSet rs1 ;

public SQLrequete() throws SQLException
{
try {
Connection connection;
BaseDeDonnee basededonnee = new BaseDeDonnee ();
rs1=basededonnee.rs;

} catch (ClassNotFoundException ex) {
Logger.getLogger(SQLrequete.class.getName()).log(Level.SEVERE, null, ex);
}


// ad.Terminal.setModel(model);
// ad.setVisible(true);

}
public static void main(String[] args) throws SQLException
{ //SQLrequete teste =new SQLrequete();

try {
//Connection connection;
BaseDeDonnee basededonnee = new BaseDeDonnee ();
// teste.rs1=basededonnee.rs;
// teste.model=basededonnee.getListModelFromResultSet(basededonnee.rs);

} catch (ClassNotFoundException ex) {

Logger.getLogger(SQLrequete.class.getName()).log(Level.SEVERE, null, ex);
}


//teste.ad.Terminal.setModel(model);
// teste.ad.setVisible(true);

}


}
class BaseDeDonnee
{
public Connection connection = null ;
public ResultSet rs ;
public Statement stmt;
public String requete;
public Administrateur ad =new Administrateur();
public DefaultListModel model;
public BaseDeDonnee() throws ClassNotFoundException, SQLException
{ System.out.println("\n+++++++++++++++++++");
connexion();
System.out.println("\n++++++++++++++++++++++");
stmt = connection.createStatement();
requete = "SELECT * FROM terminal ORDER BY Num ASC LIMIT 0 , 30";
System.out.println("\n=======================");
rs=affichage(requete);
this.getModelFromResultSet(affichage(requete));
ad.setVisible(true);
System.out.println("\n====================");
fin_connexion();
}

// Connexion à la base de donnees
public void connexion () throws ClassNotFoundException, SQLException
{
try
{
// Chargement des drivers SQL
System.out.println("\n------------------------");
System.out.println("Connexion au driver JDBC.");
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Driver com.mysql.jdbc.Driver chargé.");
}
catch (ClassNotFoundException a)
{
System.out.println ("Driver non trouve.");
}
catch (Exception b)
{
System.out.println ("Problème sur chargement de driver JDBC.");
}

try
{
// Etablissement de la connexion avec la base
String url1 = "jdbc:mysql://127.0.0.1:3306/Asteriskteste";
connection = DriverManager.getConnection(url1,"root","bandia007");
System.out.println("Connexion a la base établie.");
System.out.println("------------------------\n");
}
catch (SQLException c)
{
System.out.println ("Connexion refuse ou base inconnu.");
}
catch (Exception d)
{
System.out.println ("Problème sur connexion.");
}
}
public ResultSet affichage(String req)
{
// ResultSet rs = null;
int i=1;

try
{
//Exécution des requêtes
//requete = "INSERT INTO `Terminal` ( `Terminal_nom` ) VALUES ( 'EGG' )";
//requete = "SELECT * FROM terminal ORDER BY Num ASC LIMIT 0 , 30";
rs = stmt.executeQuery(requete);
// Statement stmt = connection.createStatement() ;
//String queryString = "INSERT INTO terminal ( Nom ) VALUES ( 'softphone_mouna' )";
// String nom ="401";
// String nom1 ="400";
// String queryString = "select Num from terminal " ;
// String queryString1 =req;

//int update = stmt.executeUpdate(queryString);
//int update1 = stmt.executeUpdate(queryString1);
System.out.println (rs);
while (rs.next())
{
System.out.println("Nom : " +rs.getString(1));
System.out.println("Num : " +rs.getString(2));
System.out.println("State :" +rs.getString(3));
System.out.println(""+i);
i++;

}

}
catch (SQLException d)
{ d.getSQLState();
d.getErrorCode();
System.out.println ("Problème la requete.");
System.out.println ("Problème la requete." +d.getErrorCode()+d.getSQLState());
}
return rs;
}
public void getModelFromResultSet(ResultSet rs) throws SQLException {
ComboBoxModel model = new ComboBoxModel() {

public void setSelectedItem(Object anItem) {
throw new UnsupportedOperationException("Not supported yet.");
}

public Object getSelectedItem() {
throw new UnsupportedOperationException("Not supported yet.");
}

public int getSize() {
throw new UnsupportedOperationException("Not supported yet.");
}

public Object getElementAt(int index) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void addListDataListener(ListDataListener l) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void removeListDataListener(ListDataListener l) {
throw new UnsupportedOperationException("Not supported yet.");
}
};
while (rs.next()) {
rs.getString("NomDeLaColonne");
ad.NumDial.addItem(rs.getString(1));
}

}
public void fin_connexion()
{
try
{
// Fermeture de la connexion
connection.close();
System.out.println("\n------------------------");
System.out.println ("Fermeture de connexion.");
System.out.println("------------------------\n");
}
catch (Exception d)
{
System.out.println ("Problème sur la fermeture de connexion.");
}
}
}
merci d'avance
1
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
3 mars 2005 à 15:36
Bonjour!

quelle table? quelle colonne? d'une base de données? Quelle base de données?
0
La table se nomme "Fournisseur", la colonne se nomme "Nom" de la base de donnée "BDStock"
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
4 mars 2005 à 09:39
Quel SGBD?
tu as déjà réussi à te connecter à ta base de données? as tu la librairie adéquate?
0
oui oui je suis connecté a ma base , je l'ai créée avec access et je code en SQL


c'est juste pour récupérer les valeurs de la colonne pour les mettre dans ma JComboBox
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
4 mars 2005 à 10:27
Es tu connecté à ta base de données avec le java? As tu utilisé le JDBC?
0
oui j'utilise le JDBC
0
dois je importer une classe pour utiliser un objet de type ResultSet?
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
4 mars 2005 à 11:21
Oui, vu que tu vas utiliser un nouvel objet java et que sinon tu ne compileras pas.
Regarde ce lien, tu comprendras tout ce qui touche aux bases de données avec java : http://java.sun.com/docs/books/tutorial/jdbc/basics/retrieving.html
0
Quel nul ce maily !

Qu'importe quelle table? quelle colonne? d'une base de données? Quelle base de données?

Connecte-toi a la base de donnee, la table et la colonne que tu veux.
a l'aide d'un PrepareStatment.

Itere sur l'objet ResultSet que tu obtiens et contiens les valeurs de ta colonne.

Rempli un object Vector avec.

Et instancie ta ComboBox. Voila, c'est tout.
Et si tu veux faire pro, utilise Apache common-dbutils (pour l'acces a la BD) et Apache commons-beansutils pour la creation dynamique d'un combo, d'une table ou que sais-je avec , puisque ce dernier permet de creer dynamiquement un bean en prenant comme parametre le resultset.
0
lolita_ch Messages postés 1 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2007 à 20:18
Bonjour!!

Si quelqu'un a un exemple pr recupérer les element d'une colonne et les mettre d'une base de donnée, qu'il me l'ecrit
j'ai essayé bcp de trucs mais ça ne marche pas

merci d'avance
0
yakoviano Messages postés 9 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 30 juillet 2007
30 juil. 2007 à 23:30
J'ai une lisbox et je veux mettre ses items dans une table Jtable
0
Bonjour,

Suite à votre discusion concerne le jcomboBox je veux savoir comment remplir un jtable avec une selection d'un element de jcombobox:
je veux explique que j'ai deux table dans la base de donnee Mysql :table forme(Code_f,Nom_f), table Produit(Code_p,Code_f,.......)
le combobox est remplir avec une Nom_f quand je selection le jcomboBox un jtable doit afficher le correspondant de Nom_f

c'est mon probleme j'essai avec AbstractTableModel mais ca marche pas je sais pas comment faire j'ai besoin une idée SVP


Merci Cordialement
0
Bonjour
je trouve un problem avec l'insruction de Jcombobox et j'ai pas trouve la solution SVP aider moi

le problem et j'ai un JCombobox remplir par les base donne Sql et je veux qaund je choisir une base donne a partir de JCombobox la connection sera change comme truc de annalyseur de requette
Merci
0