Utilisation d'un Vector

kvndevils Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 28 mai 2008 - 13 nov. 2004 à 00:05
kvndevils Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 28 mai 2008 - 13 nov. 2004 à 11:17
Bonjour tout le monde ..

Voila je suis actuellement blocker sur un probleme de vector et j'implore ainsi votre aide :

Jai deux fichiers qui sont concernés :
- la classe Figure qui dispose d'une methode appelée
trace(Graphics2D g2).
- la classe DrawPanel extends JPanel qui dispose d'un
private Vector figures en attribut

l'uilisation est la suivante :

public void paint(Graphics g){
Graphics2D g2 = (Graphics2D) g;
.....
for (int i=0; i<figures.size(); i++)
{figures.elementAt(i).trace(g2);}
}

Or le pb c kil ne reconnai pa la methode trace(..) sachant ke jai precedament defini une methode d'ajout ki se sert de : figures.add(element); et ke jai egalement construit le vector ds le constructeur : figures = new Vector(); ds le fichier DrawPanel

enfin voila je c plus koi fair je comprend pa ce ki va pas
Je vous remercie par avance bcp bcp

2 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
13 nov. 2004 à 09:21
GodConan :clown)

il faut savoir qu un vector contient des reference sur des Object et donc ces ref ne sont pas "typer" ... il te faut donc ecrire la ligne avec un 'cast' sur la ref obtenu. cela te donne :

((Figure)figures.elementAt(i)).trace(g2);

evidement remplace Figure par le type exacte des object contenu ds ton vector... ;o)

En general dans ce genre de cas on utilise une interface ce qui ofre bcp plus de liberter ;o) qd au type.
Par exemple une interface du genre

interface Tracable
{
public void trace( Graphics2D g );
}
comme cela ta class pourra afficher toute class implementant Tracable
avec ((Tracable)figures.elementAt(i)).trace(g2);

++
0
kvndevils Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 28 mai 2008
13 nov. 2004 à 11:17
Je te remercie bcp, mon probleme est resolu ..
merci encore
0
Rejoignez-nous