Bonjour à tous,

J'essaye de réaliser un arbre en SWT et je bloque sur la fonction getItems.

Le but de mon application est de pouvoir afficher dans l'arbre des pays, et pour chacun de ces pays des régions, et pour chacune de ces régions des Appellations. Mes données sont dans une base de données MySQL.

Voici mon code pour le remplissage de mon arbre :

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
 
 
public void peupler_tree() {
 
		///TREE VIEWER/////////////////////////////////////////////
 
		String requettePays = "SELECT DISTINCT pays from region" ;
 
			////TREE : PAYS
 
	try {
			Statement state = laConnexion.createStatement() ;
			ResultSet jeuEnregistrements = state.executeQuery(requettePays);
			ResultSetMetaData infojeuEnregistrements = jeuEnregistrements.getMetaData();
			while (jeuEnregistrements.next())    {
			a = jeuEnregistrements.getString(1) ;
		    itemPays=new TreeItem(tree,0) ;
		    	itemPays.setText(a) ;		 
			}
	}
 
	catch (SQLException e2) {
 
	}
 
			////TREE: REGION
	int count = tree.getItemCount();
 
	for (int i =0;i<count;i++) {
	 TreeItem ti = (TreeItem) tree.getItems()[i];
	 String pays = ti.getText() ;
 
	String requetteRegion = "SELECT DISTINCT region from region where pays='"+pays+"'" ;
 
	try {
		Statement state = laConnexion.createStatement() ;
		ResultSet jeuEnregistrements = state.executeQuery(requetteRegion);
		ResultSetMetaData infojeuEnregistrements = jeuEnregistrements.getMetaData();
		while (jeuEnregistrements.next())    {
		a = jeuEnregistrements.getString(1) ;
		 itemRegion=new TreeItem(ti,0) ;
		    itemRegion.setText(a) ;
		}
	   }
		catch (SQLException e2) {		
		}
	}
		/////TREE: APPELLATION
 
 
	TreeItem[] it = itemRegion.getItems() ;
	TreeItem child = null ;
 
	for (int i =1;i<3;i++) {
		String region ;
		   try {
			        child = it[i] ;
				region = child.getText(); 
		     }
		     catch (Exception e) {
		    	 System.out.println(e.getStackTrace());
		     }
 
		String Requetteappellation = "SELECT DISTINCT appellation from region where region='"+region+"'" ;
 
		System.out.println(Requetteappellation);
		try {
			Statement state = laConnexion.createStatement() ;
			ResultSet jeuEnregistrements = state.executeQuery(Requetteappellation);
			ResultSetMetaData infojeuEnregistrements = jeuEnregistrements.getMetaData();
			while (jeuEnregistrements.next())    {
			a = jeuEnregistrements.getString(1) ;
		    itemAppellation=new TreeItem(child,0) ;
			    itemAppellation.setText(a) ;
			}
		   }
 
			catch (SQLException e2) {
 
			}
		  }
Le code fonctionne pour les pays et les régions, mais bloque sur les appellations. Je pense que cette fonction ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
TreeItem[] it = itemRegion.getItems() ;
child = it[i] ;
region = child.getText();
Je n'utilise certainement pas la bonne méthode pour peuplé un arbre avec une base de données. Je veux evité le DataBinding autant que possible.

Merci à tous pour votre aide.