[JAVA] - Projet d'orienté Objet - Problème clair & détaillé - Bloqué

- Projet d'orienté Objet - Problème clair & détaillé - Bloqué [JAVA] - Java - Programmation

Marsh Posté le 19-02-2003 à 18:35:48    

Salut, j'ai depuis quelques temps un devoir en orienté objet à faire, je l'ai terminé pour ainsi dire, sauf que je butte à la fin sur un problème je pense simple, mais je ne vois vraiment pas....
 
Voilà en gros ce que je fais, c'est assez simple, et je comprends pourquoi JBuilder me sort cette exception...
 
 
Sujet : Affichage de points (type Point2D.Double) après avoir calculé les coordonnées.
 
 
Globalement, j'ai 3 classes (plus mais n'interviennent pas dans le probleme) :
 
- principale
- TraceGraphe (donnée, mais modifiable)
- JPanelTraceGraphe (donnée, mais modifiable)
 
 

  • Quand je suis dans ma classe principale, après avoir fait mon calcul et rempli le vecteur à afficher, je créé un objet de type TraceGraphe et ensuite je lui dis de créer la fenetre d'affichage et d'y afficher les points (grace à la méthode ajoutePanel) :


Code :
  1. graph = new TraceGraphe("Affichage des trajectoires" );
  2. graph.ajoutePanel(affichage); //affichage est un vecteur contenant des Point2D.Double


 
 

  • Ensuite je me retrouve donc dans la classe TraceGraphe, cette classe est une donnée de mon problème (a priori juste, mais modifiable). La méthode ajoutePanel, crée dans un premier temps un objet de type JPanelTraceGraphe, vérifie dans un premier temps le contenu du vecteur, puis va par l'intermédiaire de l'objet nouvellement créé faire un calibrage des valeurs maxi, mini etc... et c'est dans la méthode calculMaxMin que le problème se produit...


Code :
  1. public void ajoutePanel(Vector v) {
  2.     JPanelTraceGraphe panel = new JPanelTraceGraphe();
  3.     this.getJFrameContentPane().add(panel);
  4.     if (v == null) {
  5.         panel.test();
  6.     } else {
  7.         panel.setv(v);
  8.         panel.calculMaxMin();
  9. etc...


 
 

  • On se retrouve donc dans la méthode calculMaxMin... Et c'est ici qu'après réellement l'exception que me sort Jbuilder... Précisement c'est la derniere ligne de ce bout de code qui est référencé dans l'exception :


Code :
  1. public void calculMaxMin() {
  2.         if (this.getv() != null)  {
  3.             Vector tmp = null;
  4.             java.awt.geom.Point2D.Double point = null;
  5.             for(int j = 0; j < this.getv().size();j++) {
  6.                 tmp = (Vector)this.getv().elementAt(j);
  7. etc...


 
 
 
 
Donc voilà la donnée de mon problème, je suis la dessus depuis plusieurs jours, et là, je suis bien embetté parce qu'il ne reste que 2 jours avant de devoir rendre le devoir...
 
 
Si vous avez une idée d'où pourrait venir le problème, je suis prêt à vous écouter...
 
EDIT : voilà l'exception que me sort JBuilder :
 

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:205)


 
EDIT : premier probleme résolu :)
 
 
 
Par contre voilà ce que j'ai maintenant :
 
C'est bon maintenant, je n'ai plus une seule erreur, mais ça ouvre la fenetre mais ça n'affiche rien à l'intérieur...
 
Je me demande si la classe du prof est pas foireuse, parce que là tout à l'air ok...
 
 
mais ce qui me choque le plus, c'est que dans la classe JPanelTraceGraphe et bien, il y une méthode paint... mais il ne s'en sert jamais, elle n'est jamais executée... (j'ai mis un point de debug qui n'est jamais atteint)
 
En revanche il utilise bizarrement la méthode paintAll(graphics)  je trouve ça vraiment étrange...
 
 
j'ai essayé de remplacer la méthode paintAll par celle qui est tapée dans la classe JPanelTraceGraphe mais dans ce cas il me sort une exception (null pointer)...
 
 
 
Je suis vraiment pas quoi faire là


Message édité par zytrahus5 le 19-02-2003 à 22:28:55

---------------
http://www.zytratech.com
Reply

Marsh Posté le 19-02-2003 à 18:35:48   

Reply

Marsh Posté le 19-02-2003 à 18:47:34    

Ca doit etre un probleme de parentheses sur cette ligne :

Code :
  1. // Mal :
  2. tmp = (Vector)this.getv().elementAt(j);
  3. // Bien :
  4. tmp = (Vector)(this.getv().elementAt(j));


Message édité par Kristoph le 19-02-2003 à 18:48:00
Reply

Marsh Posté le 19-02-2003 à 18:52:01    

Merci pour ta réponse, je viens d'essayer, mais ça n'a rien changé, j'ai toujours la même exception...


---------------
http://www.zytratech.com
Reply

Marsh Posté le 19-02-2003 à 19:08:28    

Et bien, dans ce cas cela veux simplement dire que this.getv().elementAt(j) n'est pas un Vector

Reply

Marsh Posté le 19-02-2003 à 19:19:29    

exactement, c'est ce que je pense...
 
Là j'essaie d'y palier. En fait, le vecteur que je passait en argument etait un vecteur de Point2D.Double, alors que visiblement, cette méthode réclame un vecteur de vecteurs...


---------------
http://www.zytratech.com
Reply

Marsh Posté le 19-02-2003 à 20:59:45    

ben this.getv().elementAt(j) te retourne un Point2D, l'exception te le dit  :sarcastic:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 19-02-2003 à 21:17:03    

C'est bon maintenant, je n'ai plus une seule erreur, mais ça ouvre la fenetre mais ça n'affiche rien à l'intérieur...
 
Je me demande si la classe du prof est pas foireuse, parce que là tout à l'air ok...
 
 
 
 
mais ce qui me choque le plus, c'est que dans la classe JPanelTraceGraphe et bien, il y une méthode paint... mais il ne s'en sert jamais, elle n'est jamais executée... (j'ai mis un point de debug qui n'est jamais atteint)
 
En revanche il utilise bizarrement la méthode paintAll(graphics) :/ je trouve ça vraiment étrange...
 
 
j'ai essayé de remplacer la méthode paintAll par celle qui est tapée dans la classe JPanelTraceGraphe mais dans ce cas il me sort une exception (null pointer)...
 
 
 
Je suis vraiment pas quoi faire là :/


---------------
http://www.zytratech.com
Reply

Marsh Posté le 20-02-2003 à 11:05:59    

pas d'idée pour ceci ?
 

zytrahus5 a écrit :

C'est bon maintenant, je n'ai plus une seule erreur, mais ça ouvre la fenetre mais ça n'affiche rien à l'intérieur...
 
Je me demande si la classe du prof est pas foireuse, parce que là tout à l'air ok...
 
 
 
 
mais ce qui me choque le plus, c'est que dans la classe JPanelTraceGraphe et bien, il y une méthode paint... mais il ne s'en sert jamais, elle n'est jamais executée... (j'ai mis un point de debug qui n'est jamais atteint)
 
En revanche il utilise bizarrement la méthode paintAll(graphics) :/ je trouve ça vraiment étrange...
 
 
j'ai essayé de remplacer la méthode paintAll par celle qui est tapée dans la classe JPanelTraceGraphe mais dans ce cas il me sort une exception (null pointer)...
 
 
 
Je suis vraiment pas quoi faire là :/
 
:hello:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 20-02-2003 à 17:55:36    

pas de petite idée ? c'est à rendre demain et ça ne marche toujours pas :cry:  
 

zytrahus5 a écrit :

C'est bon maintenant, je n'ai plus une seule erreur, mais ça ouvre la fenetre mais ça n'affiche rien à l'intérieur...
 
Je me demande si la classe du prof est pas foireuse, parce que là tout à l'air ok...
 
 
 
 
mais ce qui me choque le plus, c'est que dans la classe JPanelTraceGraphe et bien, il y une méthode paint... mais il ne s'en sert jamais, elle n'est jamais executée... (j'ai mis un point de debug qui n'est jamais atteint)
 
En revanche il utilise bizarrement la méthode paintAll(graphics) :/ je trouve ça vraiment étrange...
 
 
j'ai essayé de remplacer la méthode paintAll par celle qui est tapée dans la classe JPanelTraceGraphe mais dans ce cas il me sort une exception (null pointer)...
 
 
 
Je suis vraiment pas quoi faire là :/


---------------
http://www.zytratech.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed