Remplir un combo avec mysql [Résolu]

Signaler
Messages postés
22
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
19 mars 2012
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
Bonsoir,

Je voudrais savoir si il est possible de mettre le resultat d'une requete sql dans un combo.
Pour l'instant je stock le resultat dans un tableau. Comment je le met dans mon combo qui est sur une autre page?
public String[] lireLaBase(){
String[] rep  ;
rep = new String[]{"0"};
int i=0;
String url ="jdbc:mysql://localhost/dbrecette";
String login ="root";
String mdp="";

Connection cn=null; 
Statement st= null;
ResultSet rs=null;
try {
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection(url, login, mdp);
st=cn.createStatement();
String sql="Select labelmetier FROM metier";
rs=st.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("libelmetier"));


rep[i]=rs.getString("libelmetier");
i++;
}

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
try {
cn.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


return rep;

}

merci

8 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
302
Bonjour,

Une nullPointerException signifie que tu appelles une méthode sur un objet qui est null.
Par exemple :

String s = null;
s.charAt(0);

Sur la ligne lesMetiers=metier.lireLaBase(); L'objet metier est null. Pour t'en convaincre, tu peux faire :
System.out.println(metier);
lesMetiers=metier.lireLaBase();
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
302
Bonjour,

Si tu as les résultats sous forme de tableau, il suffit de passer le tableau en paramètre du constructeur de la combo :

String[] tableau = new String[]{"a", "b", "c", "d"};
JComboBox combo = new JComboBox(tableau);


Si la combo est affichée sur une autre fenêtre, passes le talbeau en paramètre du constructeur de l'autre fenêtre :

public class Fenetre2 extends JFrame {
public Fenetre2(String[] tableau){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200, 55);
setLocationRelativeTo(null);
JComboBox combo = new JComboBox(tableau);
f.add(combo);
f.setVisible(true);
}
}
Messages postés
22
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
19 mars 2012

Le soucis est que comme je l’envoie à partir d'une fonction de ma classe Metier et je voulais l'envoyer dans ma page MetierIHM.
	JComboBox comboBoxMetier = new JComboBox(metier.lireLaBase()); 

Mais j'ai deux erreur : sur ce bout de code et aussi dans ma classe où j'appelle ma JInternalFrame :
metierIHM = new MetierIHM();
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
302
Je ne peux rien te dire si je ne vois pas plus de code.

Est ce que metier.lireLaBase() retourne bien un tableau ? Quel est le nom de l'erreur associée ?

Idem pour l'autre erreur.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
302
Ok, metier.lireLaBase() retourne un tableau. Je ne sais pas ce qui ne vas pas alors. recopie moi ton message d'erreur
Messages postés
22
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
19 mars 2012

Bonsoir,

J'ai changé, j'ai mis une liste au lieu d'un tableau. mes erreurs sont :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MetierIHM.(MetierIHM.java:57)
at RecetteIHM$2.actionPerformed(RecetteIHM.java:55)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


(MetierIHM.java:57) :
		lesMetiers=metier.lireLaBase();
donc quand je met dans une variable la liste retourner par la fonction



(RecetteIHM.java:55)
				metierIHM = new MetierIHM();
quand j'instancie ma classe ...
Messages postés
22
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
19 mars 2012

Ok merci
C'est bon ça marche !!
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
302
De rien, peux tu accepter les réponses qui t'ont aidé stp.

Bon courage pour la suite.