Salut à tous,
Je développe une petite interface qui permet d'afficher les Ingrédient d'une recette sélectionnée. Rien de bien ambitieux la dedans mais je ne vois pas mon erreur lorsque je tente de remplir ma liste déroulante de recette :
Lorsque je choisit "consulter" et "recette", je créer un objet de type FenetreListerRecette :
Voici ma class FenetreListerRecette :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 FenetreListerRecette IHM2 = new FenetreListerRecette(); IHM2.setBounds(100, 100, 550, 300); IHM2.setVisible(true); IHM2.setTitle("Choix de la recette"); IHM2.getContentPane();
et voici ma DAO pour me connecté à ma base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 package IHM; import metier.*; import javax.swing.* ; import java.awt.* ; import java.awt.event.*; import DAO.*; class FenetreListerRecette extends JDialog implements ActionListener { private Container contenu; private JButton annuler; private JButton valider; private JComboBox liste_Recette; private JTextArea txtaIngr; public FenetreListerRecette() { contenu=new Container(); this.contenu=this.getContentPane(); this.contenu.setLayout(null); this.txtaIngr =new JTextArea(); this.contenu.add(txtaIngr); this.txtaIngr.setBounds(20,75,300,150); //LISTE IMPRIMANTE this.liste_Recette = new JComboBox(DAO_Projet_Cuisine.getlesRecettes()); //passe en parametre un vector récuperé grace a la methode static getlesrecette this.contenu.add(liste_Recette); this.liste_Recette.setBounds(20,30,300,20); //BOUTTON ANNULER this.annuler = new JButton("Annuler"); this.annuler.addActionListener(this); this.contenu.add(annuler); this.annuler.setBounds(420,30,85,20); //BOUTTON VALIDER this.valider = new JButton("Valider"); this.valider.addActionListener(this); this.contenu.add(valider); this.valider.setBounds(330,30,85,20); } public void actionPerformed (ActionEvent evt) { if (evt.getSource() == annuler) dispose(); if (evt.getSource() == valider) { //transtypage Recette REC1 = (Recette)this.liste_Recette.getSelectedItem(); for (Ingredient unIngredient : REC1.getLesIngredients()) { String nom = unIngredient.getNomIngredient(); this.txtaIngr.append(nom); } } } }
Apparement le problème vient de stListeRecette = connect.createStatement();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 package DAO; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.TreeMap; import java.util.Vector; import Connexion.MySqlConnection; import IHM.*; import metier.*; public class DAO_Projet_Cuisine { public static Vector<Recette> getlesRecettes() { //DECLARATION VECTOR Vector<Recette> v1; v1 = new Vector<Recette>(); /*****************BASE DE DONNEE*****************/ //String nomPilote = "oracle.jdbc.driver.OracleDriver"; Connection connect = null; ResultSet res_rec = null; ResultSet res_rec2 = null; Statement stListeRecette = null; Statement stListeRecette2 = null; //CONNECTION BDD + VERIF DRIVER connect = MySqlConnection.getConnection("jdbc:mysql://localhost/projet_cuisine", "root", ""); //appele d'une methode static a partir du nom nom de la classe //REQUETE SQL ArrayList <Ingredient> lesIngredients; lesIngredients = new ArrayList <Ingredient>(); try { stListeRecette = connect.createStatement(); res_rec = stListeRecette.executeQuery("select * from Recette"); while (res_rec.next()) { int V_NumRecette = res_rec.getInt("NumRecette"); String V_NomRecette = res_rec.getString("NomRecette"); stListeRecette2 = connect.createStatement(); res_rec2 = stListeRecette2.executeQuery("select * from constituer where Recette='"+V_NumRecette+"'"); while (res_rec2.next()) { int V_NumIngredient = res_rec.getInt("NumIngredient"); String V_NomIngredient = res_rec.getString("NomIngredient"); String V_Unite = res_rec.getString("Unite"); Ingredient I1 = new Ingredient (V_NumIngredient,V_NomIngredient,V_Unite); lesIngredients.add(I1); } Recette R1 = new Recette(V_NumRecette,V_NomRecette,lesIngredients); v1.add(R1); } } catch (SQLException e) { System.out.println("Erreur sur la requête"); } return v1; } }
Quelqu'un voit-il pourquoi ?
je met en pièce jointe mon code et mes table au cas ou quelqu'un pense avoir eut le même problème...![]()
Partager