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,

ObjetMemoire.getInstance cannot be resolved
comment faire pour quelle le soit ?
J'ajoute le code :

Affichage
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
 
  }
 }
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
 
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;
	}
}
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
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) {}
}
}
D'avance merci de vos réponses.