meryazer
Messages postés23Date d'inscriptiondimanche 13 mai 2007StatutMembreDernière intervention26 décembre 2009
-
20 déc. 2008 à 15:40
meryazer
Messages postés23Date d'inscriptiondimanche 13 mai 2007StatutMembreDernière intervention26 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 !