Bonjour,
je suis confronté au problème suivant :
je crée une interface graphique dynamiquement en me basant sur une requete sql.
Cette partie marche.
Je prends le même code et je le met dans une procédure et là ça ne fonctionne plus comme si il ne pouvait pas ajouter de bouton dans le panel.
Ci dessous le code qui marche :
si je prends bêtement la partie qui ajoute les boutons et que je la mets ainsi :
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 public Map<String, JButton> btnMap; public auto(){ setTitle("test"); final JPanel panneau1 = new JPanel(); getContentPane().add(panneau1); panneau1.setLayout(new GridLayout(0,5)); int i =0; btnMap = new HashMap<>(); //partie qui me génere les boutons try { //je récupère les variables de conexion de la classe VariableGlobale VariablesGlobales vcon = new VariablesGlobales(); Class.forName(vcon.driverName); //Connection con = DriverManager.getConnection(vcon.url, vcon.userName, vcon.password); con = DriverManager.getConnection(vcon.url, vcon.userName, vcon.password); PreparedStatement ps = con.prepareStatement("select * from toto"); ResultSet rs = ps.executeQuery(); //jcombo.removeAllItems(); while (rs.next()) { svaleur = rs.getString("NOM"); btn =new JButton(); panneau1.add(btn); btn.setText(svaleur); btn.setName("btne" + i); btnMap.put("btne" +i, btn); btn.addActionListener(this); i=i+1; } con.close(); } catch (Exception e) { try { con.close(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.err.println("Got an exception! "); System.err.println(e.getMessage()); } setVisible(true); }
j'obtiens l'erreur :
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 public void test(){ try { //je récupère les variables de conexion de la classe VariableGlobale VariablesGlobales vcon = new VariablesGlobales(); int i =0; Class.forName(vcon.driverName); //Connection con = DriverManager.getConnection(vcon.url, vcon.userName, vcon.password); con = DriverManager.getConnection(vcon.url, vcon.userName, vcon.password); PreparedStatement ps = con.prepareStatement("select distinct NOM from totot "); ResultSet rs = ps.executeQuery(); //jcombo.removeAllItems(); while (rs.next()) { svaleur = rs.getString("NOM"); btn =new JButton(); panneau1.add(btn); btn.setText(svaleur); btn.setName("btne" + i); btnMap.put("btne" +i, btn); btn.addActionListener(this); i=i+1; } con.close(); } catch (Exception e) { try { con.close(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.err.println("Got an exception! "); System.err.println(e.getMessage()); } }
Got an exception!
null
au moment de rajouter le bouton dans le panneau1
Comme je dois faire une dizaine de fois la même manipulation j'aimerais vraiment arriver à intégrer le code dans une procédure.
Et puis j'avoue que je comprends pas pourquoi ça ne veut pas marcher et ça m'agace....
Si quelqu'un voit ou j'ai fais la bêtise
Merci
Partager