Bonjour,
J'avance petit à petit dans mon premier micro-développement; une solution trouvée laisse apparaitre de nouveaux problèmes. Celui d'aujourd'hui est l'alimentation d'une combobox avec les valeurs d'une table MySQL.
Jusque là, pas de souci particulier. Le problème se pose lorsque les valeurs dans ma combobox se présente sous cette forme [valeur1, valeur2,...] en une seule et unique ligne. Alors que j'attendais une valeur par ligne.
Voici mon moteur de connexion :
Et ci-dessous ma grille (pour la forme) :
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 import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JOptionPane; import javax.swing.JButton; import javax.swing.JTextField; import java.sql.*; import java.text.NumberFormat; import java.text.ParsePosition; import java.util.ArrayList; public class MoteurConnect { public ArrayList MaConnec(){ // Information d'accès à la base de données String url = "jdbc:mysql://localhost/test"; String login = "root"; String passwd = "root"; int compteur=0; String test=""; ArrayList<String> list = new ArrayList<String>(); Connection cn =null; Statement st =null; ResultSet rs=null; try { // Etape 1 : Chargement du driver Class.forName("com.mysql.jdbc.Driver"); // Etape 2 : récupération de la connexion cn = DriverManager.getConnection(url, login, passwd); // Etape 3 : Création d'un statement st = cn.createStatement(); String sql = "select nom from data.valeurs"; // // Etape 4 : exécution requête rs = st.executeQuery(sql); // Si récup données alors étapes 5 (parcours Resultset) while (compteur<5){ compteur++; while (rs.next()) { test=(rs.getString("nom")); list.add(test); } } // ResTest = String.valueOf(test); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO: handle exception e.printStackTrace(); } finally { try { // Etape 6 : libérer ressources de la mémoire. cn.close(); st.close(); } catch (SQLException e) { e.printStackTrace(); } } return list; } }
J'espère avoir des éléments de réponses qui me permettront d'avancer.
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 import java.awt.BorderLayout; import javax.lang.model.element.Modifier; import javax.swing.*; import java.awt.GridLayout; import java.awt.BorderLayout; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class Grille extends JApplet { JTextField champNom = new JTextField(30); JTextField champPrénom = new JTextField(30); JButton boutonLib1 = new JButton("Nom"); JButton boutonLib2 = new JButton("Prénom"); JButton boutonReset = new JButton("RESET"); JButton boutonInject = new JButton("INJECT"); JComboBox ComboNom = new JComboBox() ; /** * @param args */ Grille(){ JPanel contenuFenêtre = new JPanel(); BorderLayout disposition = new BorderLayout(); contenuFenêtre.setLayout(disposition); JPanel panneauChamp = new JPanel(); GridLayout dispositionChamp = new GridLayout(2, 2); panneauChamp.setLayout(dispositionChamp); panneauChamp.add(boutonLib2); panneauChamp.add(champPrénom); panneauChamp.add(boutonLib1); panneauChamp.add(champNom); contenuFenêtre.add("North", panneauChamp); JPanel panneauOP = new JPanel(); GridLayout dispositionOP = new GridLayout(2, 2); panneauOP.setLayout(dispositionOP); panneauOP.add(boutonReset); panneauOP.add(boutonInject); panneauOP.add(ComboNom); // valeur liste déroulante : MoteurConnect maConnexion = new MoteurConnect(); ComboNom.addItem(maConnexion.MaConnec()); contenuFenêtre.add("South", panneauOP); //Crée le cadre et lui affecte son contenu JFrame frame = new JFrame("Grille"); frame.setContentPane(contenuFenêtre); //Affecte à la fenêtre des dimensions suffisantes pour //prendre en compte tous les contrôles frame.pack(); //Affiche la fenêtre frame.setVisible(true); //Instancie le récepteur d'événements et l'enregistre //auprès de chaque bouton MoteurInject moteurInject = new MoteurInject(this); MoteurReset moteurReset = new MoteurReset(this); // boutonReset.addActionListener(moteurReset); boutonInject.addActionListener(moteurInject); } public static void main(String[] args) { // TODO Auto-generated method stub Grille t = new Grille(); } }
Merci.
Partager