Messagerie instantanée

meryazer Messages postés 23 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 - 20 déc. 2008 à 15:40
meryazer Messages postés 23 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 - 21 déc. 2008 à 16:59
Bonjour,
je suis pour le moment en train  de faire un mini projet sur la messagerie instantanée en java, le client peut communiquer avec le serveur, le serveur peut envoyer aux clients les requête demander par le client (les personnes en ligne, les contacts...) alors mon problème est le suivant : quand le client veut avoir une conversation privé avec l'un de ces contacts en ligne, ce que j'ai fais c'est que j'ai créé une collection pour les fenetres de conversation privé, et chaque fenetre est caractérisée par le login du destinateur et celui du destinataire, alors quand un client recois un message privé, il doit parcourir la collection pour savoir dans quel fenetre il ecrira ce message recu , mais pour mon programme, quand il veut ecrire dans une fenetre il choisi toujours la derniere dans la pile voici la partie du code :

if(msgRecu.startsWith("ConversationPrive2"))
                {



                    String[] msg=msgRecu.split("€#€");
                  //ici on commence à decouper le message tranféré par le serveur
                    int ID=Integer.parseInt(msg[1]);
                    String loginR=msg[2];
                    String loginE=msg[3];
                    String message=msg[4];
                     //ici on commence le parcours de la collection
                     Iterator iterator=MainClient.lesFenetresPrive1.iterator();
                    while(iterator.hasNext())
                    {
                         FenetreClient cetteFenetre=(FenetreClient)iterator.next();
                        //on releve les caractéristique de la fenetre
                    int idP=cetteFenetre.id;
                    String propriétaire=cetteFenetre.destinateur;
                   String recepteur=cetteFenetre.recepteur;                   System.out.println("idP "+idP+" et ID "+ID+" , loginE = "+loginE+" et propriétaire = "+propriétaire+" , loginR = "+loginR+" et recepteur = "+recepteur);
                  //on identifie les donnée, si elles sont égales on effectue les instructions suivantes
                    if(loginR.equalsIgnoreCase(recepteur)){
                            cetteFenetre.setVisible(true);
                            System.out.println("on ecrit dans la fenetre de "+propriétaire+" _ "+recepteur);
                            String txt=cetteFenetre.getJEditorPane().getText();
                            System.out.println("le texte qui se trouve dans cette fenetre est : "+txt);
                            String texte=txt+"\n\r"+message;
                           //le problème est ici
                            cetteFenetre.getJEditorPane().setText(texte);
                           



                        }
                    }
                      
                }


Ce code est mis dans la classe threadClient ,merci d'avance !

1 réponse

meryazer Messages postés 23 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 26 décembre 2009
21 déc. 2008 à 16:59
Bonjour,
j'éspère que quelqu'un à une idée pour ce problème,
merci d'avance
0
Rejoignez-nous