Acces Objet stocke dans ArrayList

kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005 - 15 sept. 2004 à 15:48
kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005 - 15 sept. 2004 à 17:20
j'ai une question a propos des ArrayList qui doivent servir ici à stocker des objets instancie de la classe Rectan:

ArrayList ListeSyno = new ArrayList();

public MainTest(){

super("creation d'elements");

BarrePosition = new JLabel();
getContentPane().add(BarrePosition, BorderLayout.SOUTH);

//instanciation des objets
Rectan rec1 = new Rectan("rec1", "titi", 5, 10, 100, 50);
Rectan rec2 = new Rectan("rec2", "toto", 115, 10, 100, 50);

//stockage des objets dans la collection
ListeSyno.add(rec1);
ListeSyno.add(rec2);

setSize(500, 500);
show();
}

public void paint(Graphics g){

for(int i=0 ; i < ListeSyno.size() ; i++){
g.drawRect( ListeSyno.get(i).Rectx, ListeSyno.get(i).Recty,
ListeSyno.get(i).RectLongx, ListeSyno.get(i).RectLongy );

g.drawString( ListeSyno.get(i).nom, ListeSyno.get(i).Rectx + 50, ListeSyno.get(i).Recty + 40 );
}

}

dans la methode paint je parcours toute la liste pour afficher mes objets mais j'ai un probleme au niveau de la compilation:

MainTest.java:44: cannot resolve symbol
symbol : variable Rectx
location: class java.lang.Object
g.drawRect( ListeSyno.get(i).Rectx

etc...-> c'est comme ca les n fois ou dans mon code j'appelle l'objet via ListeSyno.get(i).Rectx, ListeSyno.get(i).Recty, etc...

apparemment pour acceder a une valeur (ici une valeur entiere de l'objet ) ca pose probleme

comme je fait pour acceder a une valeur (ps j'ai declarer le type en public) de l'objet stocke dans mon ArrayList?

2 réponses

kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005
15 sept. 2004 à 16:05
je viens d'essayer de faire un cast sans succes:

je fait le cast plus haut et que je stocke le resultat dans une variable:

code:

ArrayList listeSyno = new ArrayList();

public MainTest(){

super("creation d'elements");

BarrePosition = new JLabel();
getContentPane().add(BarrePosition, BorderLayout.SOUTH);

Rectan rec1 = new Rectan("rec1", "titi", 5, 10, 100, 50);
Rectan rec2 = new Rectan("rec2", "toto", 115, 10, 100, 50);

listeSyno.add(rec1);
listeSyno.add(rec2);

setSize(500, 500);
show();
}

public void paint(Graphics g){

int valeur;

valeur = (Rectan) (listeSyno.get(i)).Rectx;

for(int i=0 ; i < listeSyno.size() ; i++){
g.drawRect(valeur, 20, 100, 100);
}

erreurs:

MainTest.java:40: cannot resolve symbol
symbol : variable i
location: class MainTest
valeur = (Rectan) (listeSyno.get(i)).Rectx;
^
MainTest.java:40: cannot resolve symbol
symbol : variable Rectx
location: class java.lang.Object
valeur = (Rectan) (listeSyno.get(i)).Rectx;
^
MainTest.java:40: incompatible types
found : Rectan
required: int
valeur = (Rectan) (listeSyno.get(i)).Rectx;
^
3 errors
0
kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005
15 sept. 2004 à 17:20
c'est bon l'erreur venait des parentheses au niveau de mes cast

((Rectan) listeSyno.get(i)).Rectx;

voila sinon tout fonctionne correctement pour la collection
0
Rejoignez-nous