Remplir un combo avec mysql

Résolu
lilyy59 Messages postés 22 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 19 mars 2012 - 6 déc. 2011 à 21:52
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 8 déc. 2011 à 16:12
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
8 déc. 2011 à 07:53
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();
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
7 déc. 2011 à 08:22
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);
}
}
0
lilyy59 Messages postés 22 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 19 mars 2012
7 déc. 2011 à 08:49
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();
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
7 déc. 2011 à 09:17
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.
0

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

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
7 déc. 2011 à 09:17
Ok, metier.lireLaBase() retourne un tableau. Je ne sais pas ce qui ne vas pas alors. recopie moi ton message d'erreur
0
lilyy59 Messages postés 22 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 19 mars 2012
7 déc. 2011 à 22:26
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 ...
0
lilyy59 Messages postés 22 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 19 mars 2012
8 déc. 2011 à 15:47
Ok merci
C'est bon ça marche !!
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
8 déc. 2011 à 16:12
De rien, peux tu accepter les réponses qui t'ont aidé stp.

Bon courage pour la suite.
0
Rejoignez-nous