Problème de Vector qui imprime pas ^^

Résolu/Fermé
cs_Nisnor Messages postés 48 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 9 mars 2007 - 18 août 2006 à 17:53
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 18 août 2006 à 18:54
Bonjour a tout le monde...
Presque tout est dans le titre...
Voici un code:

Vector<Vector<Comparable>> informationDecors = new Vector<Vector<Comparable>>();
Vector<Comparable> temp = new Vector<Comparable>(17);
        int index = 0;
            while(info.next()){
                if(temp.isEmpty()){
                    temp.add(0, info.getString("nom_decor"));
                    temp.add(1, info.getString("image_decor"));
                    temp.add(2, info.getInt("cutx"));
                    temp.add(3, info.getInt("cuty"));
                    temp.add(4, info.getInt("cutlengthx"));
                    temp.add(5, info.getInt("cutlengthy"));
                    temp.add(6, info.getInt("repeterx"));
                    temp.add(7, info.getInt("repetery"));
                    temp.add(8, info.getInt("id_tile"));
                    temp.add(9, info.getBoolean("autotile"));
                    temp.add(10, info.getBoolean("anime"));
                    temp.add(11, info.getInt("position_x"));
                    temp.add(12, info.getInt("position_y"));
                    temp.add(13, info.getInt("carte_x"));
                    temp.add(14, info.getInt("carte_y"));
                    temp.add(15, info.getInt("idcarte"));
                    temp.add(16, info.getBoolean("passable"));
                    temp.add(17, info.getInt("z_index"));
                }
                else{
                    temp.set(0, info.getString("nom_decor"));
                    temp.set(1, info.getString("image_decor"));
                    temp.set(2, info.getInt("cutx"));
                    temp.set(3, info.getInt("cuty"));
                    temp.set(4, info.getInt("cutlengthx"));
                    temp.set(5, info.getInt("cutlengthy"));
                    temp.set(6, info.getInt("repeterx"));
                    temp.set(7, info.getInt("repetery"));
                    temp.set(8, info.getInt("id_tile"));
                    temp.set(9, info.getBoolean("autotile"));
                    temp.set(10, info.getBoolean("anime"));
                    temp.set(11, info.getInt("position_x"));
                    temp.set(12, info.getInt("position_y"));
                    temp.set(13, info.getInt("carte_x"));
                    temp.set(14, info.getInt("carte_y"));
                    temp.set(15, info.getInt("idcarte"));
                    temp.set(16, info.getBoolean("passable"));
                    temp.set(17, info.getInt("z_index"));
                }
                informationDecors.insertElementAt(temp,index);
                index++;
            }
            temp = null;
            info = null;

Dans lequel info est de type ResultSet et contient une série d'informations que j'accède successivement avec un while(info.next()).

Ce morceau de code devrait "en toute logique" (enfin je pense) me transformer mon ResultSet en un objet de type Vector de Vector de Comparable qui contiendrais toutes les informations nécessaire concernant des "objets virtuels" (des décors dans un jeu)...
Seulement, j'ai un gros souci que je comprend pas trop: Mon Vector<Vector<Comparable>> se créé correctement avec autant de Vector<Comparable> que d'enregistrement dans ma base de données et chacun contenant 17 champs Comparable avec les informations voulues....Mais allez savoir pourquoi, au lieu de contenir les information de chaque ligne de la BDD, le Vector<Vector<Comparable>> me rend égal au dernier élément, tous les resultats précédent.....Autrement dit, que j'accède a l'index 0, 1, 2, 3 ou 4, les valeurs retournées sont toute identique à l'index 4.....

Quelqu'un aurait-il une suggestion quand a ce problème?

Merci d'avance

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
18 août 2006 à 18:54
Salut,

bon c'est pas forcement une solution mais je ne comprends pas tres bien ton
if(temp.isEmpty())

puis c'est assez long quand meme pourquoi ne fais tu pas simplement

Vector<Vector<Comparable>> informationDecors = new Vector<Vector<Comparable>>();

int index = 0;
while(info.next()){
    Vector<Comparable> temp = new Vector<Comparable>(17);
    temp.add(info.getString("nom_decor"));
    temp.add(info.getString("image_decor"));
    temp.add(info.getInt("cutx"));
    temp.add(info.getInt("cuty"));
    temp.add(info.getInt("cutlengthx"));
    temp.add(info.getInt("cutlengthy"));
    temp.add(info.getInt("repeterx"));
    temp.add(info.getInt("repetery"));
    temp.add(info.getInt("id_tile"));
    temp.add(info.getBoolean("autotile"));
    temp.add(info.getBoolean("anime"));
    temp.add(info.getInt("position_x"));
    temp.add(info.getInt("position_y"));
    temp.add(info.getInt("carte_x"));
    temp.add(info.getInt("carte_y"));
    temp.add(info.getInt("idcarte"));
    temp.add(info.getInt("z_index"));
    informationDecors.add(temp);
}

fin bon tu peux aussi simplifier le et faire une boucle pour récupérer les élément de info

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
cs_Nisnor Messages postés 48 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 9 mars 2007
18 août 2006 à 17:55
Je rajouterais que pour tenter de trouver une solution j'ai identifié les resultats contenu dans le Vector<Vector<Comparable>> juste après la ligne informationDecors.insertElementAt(temp,index); et après la boucle....Le problème n'apparait que une fois la boucle terminée
0
Rejoignez-nous