Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2611 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[[Java]] -- Un gros probleme entre méthodes.

n°296156
gloop
Posté le 29-01-2003 à 11:35:49  profilanswer
 

Reprise du message précédent :

zytrahus5 a écrit :

a moins que je puisse accéder aux attributs de la classe calcul par le biais du constructeur que j'ai créé dans la fenetre principale ?
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
par exemple, si je le complete de cette façon :
 
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
   //vect_aff déclaré plus en tant que vecteur de vecteur
   vect_aff = result.all_traj;
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
est ce que ça serait bon ? :??:  


 
oui, mais vaut mieux créer une méthode d'accés plutot que de tout mettre en public.
dans cette méthode tu renvoies soit une copie de ton vecteur soit directement la référence, c'est à toi de voir ce que tu veux en faire.

mood
Publicité
Posté le 29-01-2003 à 11:35:49  profilanswer
 

n°296205
zytrahus5
wait what?
Posté le 29-01-2003 à 12:14:53  profilanswer
 

gloop a écrit :


 
oui, mais vaut mieux créer une méthode d'accés plutot que de tout mettre en public.
dans cette méthode tu renvoies soit une copie de ton vecteur soit directement la référence, c'est à toi de voir ce que tu veux en faire.

merci pour le coup de main...
 
 
 
j'ai un truc etrange qui se produit :
 
j'ai fait un bout de code pour afficher ce que contient le vecteur nouvellement créé. ça marche.
 
voici le code :
 

//remplir les variables par les champs
       new_planete._nom = champ_nom.getText();
       new_planete._masse = (new Double( champ_masse.getText() )).doubleValue();
       new_planete._position = new Point2D.Double( (new Double( champ_posx.getText() )).doubleValue() , (new Double( champ_posy.getText() )).doubleValue());
       new_planete._vitesse = new Point2D.Double( (new Double( champ_vitx.getText() )).doubleValue() , (new Double( champ_vity.getText() )).doubleValue());
 
 
 
       //System.out.println("la MASSE planete NEW est "+new_planete._masse);
 
       //Remplir le vecteur par les planetes - OK
 
 
 
       tab_planetes.addElement(new Planete() );
       tab_planetes.setElementAt(new_planete,i);
 
       FUCK = (Planete) tab_planetes.elementAt(i);
 
       System.out.println("la MASSE planete fuck "+i+" est "+FUCK._masse);
       i++;


 
par contre quand je balance ce vecteur en arguement dans ma classe calcul, tous les éléments du vecteurs sont identiques, tous identiques au dernier élément saisi.
 
je comprends pas parce que dans le code ci-dessus et bien, ça marche, j'affiche chacun des éléments de ce meme vecteur (avant d'etre envoyé en arg) et bien ça marche dans ce cas :/
 
 
t'aurais pas une idée ? :hello:


---------------
http://www.zytratech.com
n°296221
zytrahus5
wait what?
Posté le 29-01-2003 à 12:47:05  profilanswer
 

zytrahus5 a écrit :

merci pour le coup de main...
 
 
 
j'ai un truc etrange qui se produit :
 
j'ai fait un bout de code pour afficher ce que contient le vecteur nouvellement créé. ça marche.
 
voici le code :
 

//remplir les variables par les champs
       new_planete._nom = champ_nom.getText();
       new_planete._masse = (new Double( champ_masse.getText() )).doubleValue();
       new_planete._position = new Point2D.Double( (new Double( champ_posx.getText() )).doubleValue() , (new Double( champ_posy.getText() )).doubleValue());
       new_planete._vitesse = new Point2D.Double( (new Double( champ_vitx.getText() )).doubleValue() , (new Double( champ_vity.getText() )).doubleValue());
 
 
 
       //System.out.println("la MASSE planete NEW est "+new_planete._masse);
 
       //Remplir le vecteur par les planetes - OK
 
 
 
       tab_planetes.addElement(new Planete() );
       tab_planetes.setElementAt(new_planete,i);
 
       FUCK = (Planete) tab_planetes.elementAt(i);
 
       System.out.println("la MASSE planete fuck "+i+" est "+FUCK._masse);
       i++;


 
par contre quand je balance ce vecteur en arguement dans ma classe calcul, tous les éléments du vecteurs sont identiques, tous identiques au dernier élément saisi.
 
je comprends pas parce que dans le code ci-dessus et bien, ça marche, j'affiche chacun des éléments de ce meme vecteur (avant d'etre envoyé en arg) et bien ça marche dans ce cas :/
 
 
t'aurais pas une idée ? :hello:  

 [:screamfr]  
 
apres ça je pense que ce sera bon.... siouplé, un dernier coup de main :sweat:


---------------
http://www.zytratech.com
n°296232
gloop
Posté le 29-01-2003 à 12:56:06  profilanswer
 

Dans ton code, tu ajoutes un new Planete puis tu le remplaces par ton object new_planete. Seulement ce new_planete, c'est toujours le même objet. Donc chaque elt dans le vector est une référence vers ce meme objet.
Il faut que tu crées un objet, tu le paramétres et tu l'insére dans le vector.

Code :
  1. new_planete = new Planete ();
  2. new_planete._nom = champ_nom.getText();
  3. new_planete._masse = (new Double( champ_masse.getText() )).doubleValue();
  4. new_planete._position = new Point2D.Double( (new Double( champ_posx.getText() )).doubleValue() , (new Double( champ_posy.getText() )).doubleValue());
  5. new_planete._vitesse = new Point2D.Double( (new Double( champ_vitx.getText() )).doubleValue() , (new Double( champ_vity.getText() )).doubleValue());
  6. tab_planetes.addElement(newPlanete);


n°296235
--greg--
Posté le 29-01-2003 à 13:03:26  profilanswer
 

http://forum.hardware.fr/icones/flagn1.gif


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°296341
zytrahus5
wait what?
Posté le 29-01-2003 à 15:27:21  profilanswer
 

gloop a écrit :

Dans ton code, tu ajoutes un new Planete puis tu le remplaces par ton object new_planete. Seulement ce new_planete, c'est toujours le même objet. Donc chaque elt dans le vector est une référence vers ce meme objet.
Il faut que tu crées un objet, tu le paramétres et tu l'insére dans le vector.

Code :
  1. new_planete = new Planete ();
  2. new_planete._nom = champ_nom.getText();
  3. new_planete._masse = (new Double( champ_masse.getText() )).doubleValue();
  4. new_planete._position = new Point2D.Double( (new Double( champ_posx.getText() )).doubleValue() , (new Double( champ_posy.getText() )).doubleValue());
  5. new_planete._vitesse = new Point2D.Double( (new Double( champ_vitx.getText() )).doubleValue() , (new Double( champ_vity.getText() )).doubleValue());
  6. tab_planetes.addElement(newPlanete);


 

j'ai essayé ton code, mais j'arrive pas à trouver la différence avec mon code :/
 
je comprends le probleme comme tu me l'as expliqué, mais je n'arrive pas à y remédier.
 
D'apres ce que j'ai compris c'est que comme j'utilise le meme objet d'une fois sur l'autre et bien, au moins d'y faire référence, le Vector appelle le meme objet pour chacune de ses composantes ?
 
comment faire ? créer un objet Planete différent à chaque fois que je clique sur le bouton ?


---------------
http://www.zytratech.com
n°296345
zytrahus5
wait what?
Posté le 29-01-2003 à 15:33:44  profilanswer
 

c'est bon, j'ai la différence :whistle: il faut créer un nouvel objet non pas en haut, mais à l'intérieur de l'écoute, pour le recréer à chaque fois


---------------
http://www.zytratech.com
n°296618
zytrahus5
wait what?
Posté le 29-01-2003 à 20:46:13  profilanswer
 

Ca y est j'ai bien avancé :) grace a votre aide :love:  
 
 
j'ai afficher mes coordonnées via la console (system.out.println) pour vérifier si c'etait bon, parce que la classe d'affichage ne voulait pas se lancer :/
 
 
Elles sont soit disant données, mais moi je me demande, si y a pas des trucs à la con dans leurs classe.
 
Y en a deux JPanelTraceGraphe et TraceGraphe, il est précisé que nous on n'a a appelé TraceGraphe et seulement TraceGraphe car l'autre est elle même appelée par JPanelTraceGraphe.
 
 
Bref, au moment ou je la lance, voilà l'erreur que j'obtient... une exception, encore une :/
 

Exception occurred during event dispatching:
 
java.lang.ClassCastException: java.awt.geom.Point2D$Double
 
 at mvt_planete.JPanelTraceGraphe.calculMaxMin(JPanelTraceGraphe.java:155)
 
 at mvt_planete.TraceGraphe.ajoutePanel(TraceGraphe.java:51)
 
 at mvt_planete.Principale.actionPerformed(Principale.java:184)


 
j'ai regardé dans les lignes de l'erreur signalée et ça vient de la ligne suivante dans la classe JPanelTraceGraphe qui nous a été fourni par le prof :/
 
c'est cette ligne qui génère l'exception :
 

Code :
  1. tmp = (Vector)this.getv().elementAt(j);


 
 
je sens que c'est meme le getv qu'il n'aime pas... qu'en pensez vous ?


---------------
http://www.zytratech.com
n°296744
zytrahus5
wait what?
Posté le 29-01-2003 à 23:07:41  profilanswer
 

:bounce:  
 

zytrahus5 a écrit :

Ca y est j'ai bien avancé :) grace a votre aide :love:  
 
 
j'ai afficher mes coordonnées via la console (system.out.println) pour vérifier si c'etait bon, parce que la classe d'affichage ne voulait pas se lancer :/
 
 
Elles sont soit disant données, mais moi je me demande, si y a pas des trucs à la con dans leurs classe.
 
Y en a deux JPanelTraceGraphe et TraceGraphe, il est précisé que nous on n'a a appelé TraceGraphe et seulement TraceGraphe car l'autre est elle même appelée par JPanelTraceGraphe.
 
 
Bref, au moment ou je la lance, voilà l'erreur que j'obtient... une exception, encore une :/
 

Exception occurred during event dispatching:
 
java.lang.ClassCastException: java.awt.geom.Point2D$Double
 
 at mvt_planete.JPanelTraceGraphe.calculMaxMin(JPanelTraceGraphe.java:155)
 
 at mvt_planete.TraceGraphe.ajoutePanel(TraceGraphe.java:51)
 
 at mvt_planete.Principale.actionPerformed(Principale.java:184)


 
j'ai regardé dans les lignes de l'erreur signalée et ça vient de la ligne suivante dans la classe JPanelTraceGraphe qui nous a été fourni par le prof :/
 
c'est cette ligne qui génère l'exception :
 

Code :
  1. tmp = (Vector)this.getv().elementAt(j);


 
 
je sens que c'est meme le getv qu'il n'aime pas... qu'en pensez vous ?


---------------
http://www.zytratech.com
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[oracle] problème d'installation Oracle8i + questions de newbieProbleme avec forum phpbb ?
[JAVA] - Récupérer le contenu d'un champUtiliser le carnet d'adresse de outlook depuis java ?
[Java] - Help Méchament Needed en post #4 - (projet CO inside) :/Un petit probleme de syntaxe ... .LinkedCell
comment créer un ficher .class à partir d'un .java ? Helpppppppppppppje recherche un ide a telecharger pour java
[html hard core newbie] Problème pour juxtaposer des images...problème de "handle" sur D5
Plus de sujets relatifs à : [[Java]] -- Un gros probleme entre méthodes.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR