Bonsoir tout le monde
j'ai un problème avec une JTree quand elle se connecte à la base de données, mon application doit effectuer les taches suivantes :
1. une ActionPerformed sur un bouton qui va appelé une méthode pour connecter à la base de données et effectuer la recherche de l'ensemble des série des images d'un examen.
2. l'affichage de l'examen dans une JTree avec l'ensemble des séries trouvées et l'ensembles des images dans chaque série.
mon code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) { try { /*Appel d'une methode externe pour connecter à la base de données et effectuer la recherche */ d.chercherSerie2("SELECT * FROM serie WHERE idExamen = "+f+"",jTable2, jLabel19,jTree1); } catch (Exception ex) { Logger.getLogger(ChercherExamen.class.getName()).log(Level.SEVERE, null, ex); }
et pour la méthode chercherSerie2 voila son code :
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 public Serie chercherSerie2(String sql, JTable jTable2,JLabel jLabel16, JTree jTree1) throws Exception{ try { con =Connexion.getConnection(); st = con.createStatement(); System.out.println("connection avec succee"); ResultSet rs_serie = st.executeQuery(sql); boolean f = rs_serie.next(); if (f==true) { s = new Serie(rs_serie.getInt("idSerie") ,rs_serie.getInt("idExamen"),rs_serie.getInt("idRadiologue"), rs_serie.getInt("nbrImage") ,rs_serie.getDate("dateStock") ,rs_serie.getInt("hStock"),rs_serie.getInt("mStock")); examen = new DefaultMutableTreeNode("Examen N° "+idexamen); modell = new DefaultTreeModel(examen); jTree1.setModel(modell); jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); } while (f==true) { int idSerie = rs_serie.getInt("idSerie"); f = rs_serie.next(); /* appel de la methode 'creationSerieJTree' pour créer l'ensemble des séries dans la JTree */ creationSerieJTree(idSerie,serie,examen); /* appel de la methode 'table' pour connecter à la base de données et chercher l'ensemble des images corespandantes a chaque série de l'examen */ table(idSerie,serie,examen); } st.close(); rs_serie.close(); } catch (SQLException e) { String nomClasse = "ChercherSerie"; String nomMethode = "chercherSerie2"; exp.sqlException(e,nomClasse,nomMethode); } catch (ClassNotFoundException e){ System.out.println("echec de connection"); } return s; }
le code de la méthode table est le suivant :
le code de la méthode creationImageJTree :
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 public void table (int idSerie , DefaultMutableTreeNode serie, DefaultMutableTreeNode examen){ // création des images dans la JTree : try { con = Connexion.getConnection(); Statement st3 = null ; st3 = con.createStatement(); ResultSet rss= null ; String sql1 = "SELECT * FROM image where idSerie = "+idSerie ; rss = st3.executeQuery(sql1); boolean f2 = rss.next(); while (f2==true){ f2 = rss.next(); /* appel de la methode 'creationImageJTree' pour créer l'ensemble des images dans la JTree */ creationImageJTree(idImage,uid,serie,examen,extensionImg); } } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } }
le probleme se pose au niveau de l'insertion de l'ensemble des images a la série existante, alors que la methode ne connait pas la variable serie malgré elle est bien déclarée !!!!!!!!!!
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 public void creationImageJTree (int idImage, String uid , DefaultMutableTreeNode serie, DefaultMutableTreeNode examen, String extensionImg){ //Création des images : DefaultMutableTreeNode image = examen; image = new DefaultMutableTreeNode("Image N° "+idImage+"-"+uid+"."+extensionImg); System.out.println("serie . to string : "+serie.toString()); serie.add(image); System.out.println("la methode creationImageJTree : la création de l'image +++ étape 2"); modell.insertNodeInto(image, serie, serie.getChildCount()-1); System.out.println("la methode creationImageJTree : la création de l'image +++ étape 3"); modell.nodeChanged(image); }
et finalement lors de l'affichage de JTree :
elle m'affiche : l'examen trouvée avec toujours une seul série (meme si l'examen contient plusieurs séries) et aucune image n'a été affichée avec la série
Merci pour votre patience et votre aide
Partager