if (message.startsWith(PRIMSG) && message.endsWith(PRIMSG)) {
String a[] = message.split("~~"); // a[0]标识 a[1]发的人 a[2] 收的人 a[3] 信息 a[4]标识
Set<String> fnames = Tools.dialog.keySet();

boolean flag = false;
System.out.println(Tools.dialog.toString());
for (String name1 : fnames) {
String name2 = Tools.dialog.get(name1);
                           

if ((name1.equals(a[1]) && name2.equals(a[2]))
|| (name1.equals(a[2]) && name2.equals(a[1]))) { flag = true;
System.out.println("!!!!!");
break;

}
} if (flag) { oneTalkFrame.txtAllChar.append(a[1] + "说:" + a[3]
+ "\n");
flag=false;
} else { oneTalkFrame = new OneTalk(s, a[2], a[1]);

Tools.dialog.put(a[2], a[1]);

//System.out.println(Tools.dialog);

oneTalkFrame.txtAllChar.append(a[1] + "说:" + a[3]
+ "\n");
}
这里的Tools里面的map是添加的那个人现在窗口已经打开了服务器端的信息接收来以后,现在的代码是我选一个人单独聊天,然后发送以后对方弹出一个窗口,现在我不知道为什么对方回信息的时候又弹出来一个窗口,然后那两个窗口就可以正常通信了。
或者谁还有什么好办法。。