Petit probleme avec les Vector

cs_SLaYerS Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 2 décembre 2005 - 18 nov. 2004 à 20:09
Quazar Messages postés 84 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 6 octobre 2006 - 19 nov. 2004 à 18:06
Bon voila je m'explique, j'ai un petit probleme et je ne comprend vraiment pas pourquoi ca me fait ca.

Alors j'ai un class contact qui contient des informations sur une personne (mail, pseudo...)

j'ai une class window qui est une fenetre de conversation avec un ou plusieurs contact contenu dans un Vector.

j'ai une class windowManager avec un Vector qui contien les window.

je veux faire un fonction isInVisibleWindow(Vector contacts) dans la class windowManager qui retourne vrai si une fenetre avec contacts est ouverte et faux si ce n'est pas le cas

Voici maintenant le probleme. je construit une window avec un Vector contacts non vide. je l'ajoute au Vector de la class windowManager. quand j'appelle ma fonction isInVisibleWindow(Vector contact) je me retrouve avec ma fenetre dans le Vector qui contient les fenetre. Mais le Vector qui contient les contacts de la fenetre est vide :/

en gros avec des lignes de codes ca donnes ca

//dans mon fichier main...
//ici _contacts n'est pas vide
_window = new MessageWindow(_me, _contacts, _switchboard, _main);
_main._windowsManager.addWindow(_window);

//dans mon fichier windowManager...
private Vector _windows = new Vector();

public void addWindow(MessageWindow window) { _windows.add(window);
}

//une fonction pour expliquer le prob...
public void uneFonction() {

MessageWindow window = (MessageWindow)_windows.elementAt(0);

// et la le çcontacts que j'ai mis dans les parametres opur construire la window est vide...
}

J'ai verifié plusieurs fois les contructeurs, en aucun cas je construit une windows avec un _contacts vide, je comprend pas trop, donc si vous avez une idée, elle est la bienvenue :)

Merci d'avance

[mailto:lemortellec.renaud@free.fr -=(SLaYerS)=-]

1 réponse

Quazar Messages postés 84 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 6 octobre 2006
19 nov. 2004 à 18:06
Salut,

Je vais commencer par te résumer ce que j ai cru comprendre.
- Tu as une premiere classe : MessageWindow qui a comme attribut un Vector qui contient une liste d'objet Contact.

- tu as également une classe WindowsManager qui possède elle aussi un Vector qui lui contient des objets de type MessageWindows. Cette classe contient également une méthode : isInvisibleWindows qui teste le Contact passé en param et regarde s'il appartient à un des Vector des MessageWindow contenu dans le vecteur de WindowsManager.

Ton probleme: quand tu utilises ta methode isInvisdibleWindows, tu t aperçois que tes vecteurs de Contact ne contiennent pas les objets en question.

Dans le bout de code que tu as filé en exemple tu ne présente l'insertion de Contact dans ContactVecteur. Peut etre le probleme vient il de là.
Pour ma part, le probleme ne peut venir que deux endroits:
- Soit tu remplis mal tes vecteurs.
- Soit tu le lis mal.
En general, moi, je les remplis mal. Du genre: j'aurais créer mon objet Contact avec de belles valeurs d'initialisation et toute une méthode de génération. Et puis en fin de proc, j'oublie de rajouter la ligne Vector.add(myObj).

Si tu veux que je me penche sur toin probleme, peut etre ferais tu mieux de mettre une plus importante (ou tout au moins plus explicite) partie de ton code.

Remarque: la version 1.5 du JRE propose des objets apparement plus facile à utiliser que les Vector, les ArrayList. En plus, le java 1.5 autorise une nouvelle synthaxe pour les boucle for, qui optimise ton code (lisibilité, fluidité, rapidité). Encore plus fort que les Iterator() ;)

Voila, je ne sais si j'ai pu t aider, mais peut etre que les renseignements que je t ai donné t aideront a y voir clair.

Vers l'infini et au delà... [Q]
0
Rejoignez-nous