Bonjour,
J'ai eu des reponses sur un sujet, mais quand je veux appliquer je reste bloqué...
Il s'agit de classes qui discutent entre elles.
Ma classe Affichage cree un objet ObjetMemoire ou sont sauvegardées des données.
Ensuite une classe Thread est appelée depuis la classe Affichage (t.start)
et veut utiliser les données qui sont dans ObjetMemoire. Mais ObjetMemoire ne semble pas connue de ma classe Thread,
comment faire pour quelle le soit ?ObjetMemoire.getInstance cannot be resolved
J'ajoute le code :
Affichage
ObjetMemoire
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 import javax.swing.*; public class Affichage { private ObjetProxi[] ListObjet ; Affichage (ObjetProxi [] ListObjet) { this.ListObjet=ListObjet; JFrame uneFrame = new JFrame("test"); monJPanel unJpanel = new monJPanel(ListObjet); uneFrame.setContentPane(unJpanel); uneFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); uneFrame.setSize(300,300); uneFrame.setVisible(true); } public static void main(String args[]) { ObjetProxi [] ListObjet ; ObjetMemoire ObjetMem; Affichage obj5; ListObjet = new ObjetProxi[3]; for (int i=0;i<3;i++) ListObjet[i]=new ObjetProxi("obj",i); ObjetMem = new ObjetMemoire(ListObjet); obj5 = new Affichage(ListObjet); for (int i=0;i<3;i++) ListObjet[i].start(); // je mets ma liste d'objet dans un objet memoire } }
ObjetProxi
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 public class ObjetMemoire { private ObjetProxi[] ListObjet; private static ObjetMemoire instance=null; ObjetMemoire(ObjetProxi[] ListObjet ) { ObjetMemoire.instance=this; this.ListObjet=ListObjet; } public ObjetProxi[] GetObjetThread() { return ListObjet; } public static ObjetMemoire getInstance () throws Exception { if (ObjetMemoire.instance==null) { throw new Exception ("pas d objet enregistre"); } return ObjetMemoire.instance; } }
D'avance merci de vos réponses.
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 (...) public void run() { int dx,dy,dz; int var; ObjetProxi[] ListObjet = null; ObjetMem = null; try{ for (int i=0;i<100;i++) { dx=choix_nouvelle_direction(x,100); dy=choix_nouvelle_direction(y,100); dz=choix_nouvelle_direction(z,100); // on recupere le numero de l objet; int val = this.numero; tabPosX[val]=this.x; tabPosY[val]=this.y; tabPosZ[val]=this.z; try { //ObjetMemoire.getInstance cannot be resolved ... ListObjet=ObjetMemoire.getInstance.GetObjetThread (); } catch (Exception e) { e.printStackTrace(); } Random r = new Random(lagraine); for (int j=0;j<NombreDobjets;j++) { for( int k=0;k<NombreDobjets;k++) { if (j !=k ) { while (distance(j,k,ListObjet)<5) { var=r.nextInt(3); if (var==0) ListObjet[j].x++; if (var==1) ListObjet[j].y++; if (var==2) ListObjet[j].z++; } } } } System.out.println ("======================"); sleep(100); System.out.println("objet= "+this.numero+ " "+tabPosX[val]+ " "+tabPosY[val]+ " "+tabPosZ[val]+ " "); } } catch (InterruptedException e) {} } }
Partager