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 :
- graph = new TraceGraphe("Affichage des trajectoires" );
- 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 :
- public void ajoutePanel(Vector v) {
- JPanelTraceGraphe panel = new JPanelTraceGraphe();
- this.getJFrameContentPane().add(panel);
- if (v == null) {
- panel.test();
- } else {
- panel.setv(v);
- panel.calculMaxMin();
- 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 :
- public void calculMaxMin() {
- if (this.getv() != null) {
- Vector tmp = null;
- java.awt.geom.Point2D.Double point = null;
- for(int j = 0; j < this.getv().size();j++) {
- tmp = (Vector)this.getv().elementAt(j);
- 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