IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Des classes qui discutent...


Sujet :

Langage Java

  1. #1
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut Des classes qui discutent...
    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.

  2. #2
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    le getInstance est une méthode, donc parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListObjet=ObjetMemoire.getInstance().GetObjetThread();

  3. #3
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 251
    Points
    1 251
    Par défaut
    Essaies avec des parenthèses derrière getInstance...

  4. #4
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Merci bien, j'ai encore du boulot pour plus faire des erreurs comme ca.
    Merci

  5. #5
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 251
    Points
    1 251
    Par défaut
    En parlant d'erreurs... es tu sûr de ce que tu fais quand tu code ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.ListObjet=ListObjet;
    Tu ne copies absolument pas ton tableau ici, mais avec à ta variable locale la même adresse que celle de ta variable appelante. En d'autres termes tu travailles avec le même tableau et non une copie !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compiler des classes qui en importe d'autre
    Par bogizo dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 28/08/2008, 03h25
  2. Réponses: 6
    Dernier message: 11/12/2007, 17h55
  3. Quels classes utiliser pour remplacer des classes qui sont propriété de Sun
    Par danyboy85 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 21/11/2007, 16h36
  4. des classes qui se mordent la queue
    Par Michel_57 dans le forum C++
    Réponses: 5
    Dernier message: 26/09/2007, 22h49
  5. Réponses: 2
    Dernier message: 04/01/2007, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo