résolution bugs

This commit is contained in:
Elise Barnabe 2021-01-28 19:12:06 +01:00
父節點 e38338000f
當前提交 dd907d3da6
共有 17 個文件被更改,包括 75 次插入17 次删除

查看文件

@ -11,7 +11,7 @@
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="C:/Users/elise/OneDrive/Bureau/ELISE/INSA/4A/POO COO/java-json.jar"> <classpathentry kind="lib" path="lib/java-json.jar">
<attributes> <attributes>
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

二進制
chatGit/lib/java-json.jar Normal file

Binary file not shown.

查看文件

@ -6,6 +6,7 @@ import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
import java.util.ArrayList; import java.util.ArrayList;
@ -139,9 +140,9 @@ public class Agent implements PropertyChangeListener{
case 1 : case 1 :
MessagePseudo msgPseudo = (MessagePseudo) msg; MessagePseudo msgPseudo = (MessagePseudo) msg;
boolean pseudoExist = Request.sendPseudo(msgPseudo.getPseudo(), "pseudoOK"); boolean pseudoExist = Request.sendPseudo(msgPseudo.getPseudo(), "pseudoOK");
if(pseudoExist) { if(!pseudoExist) {
Contact newUser = new Contact(msgPseudo.getPseudo(), msgPseudo.getAddressSrc(), msgPseudo.getPortSrc()); Contact newUser = new Contact(msgPseudo.getPseudo(), msgPseudo.getAddressSrc(), msgPseudo.getPortSrc());
Request.sendUser(msgPseudo.getPseudo(), msgPseudo.getAddressSrc().toString(), Integer.toString(msgPseudo.getPortSrc()), "addUser"); //Request.sendUser(msgPseudo.getPseudo(), msgPseudo.getAddressSrc().toString(), Integer.toString(msgPseudo.getPortSrc()), "addUser");
//list.addContact(newUser); //list.addContact(newUser);
if(FenetreMenu.ouvert) { if(FenetreMenu.ouvert) {
FenetreMenu.getCb().addItem(newUser.getPseudo()); FenetreMenu.getCb().addItem(newUser.getPseudo());
@ -154,7 +155,16 @@ public class Agent implements PropertyChangeListener{
if(!pseudoExiste){ if(!pseudoExiste){
Request.sendDeconnexion(Integer.toString(messageDeconnexion.getId()),messageDeconnexion.getPseudo(), "deconnexion"); Request.sendDeconnexion(Integer.toString(messageDeconnexion.getId()),messageDeconnexion.getPseudo(), "deconnexion");
FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo()); FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo());
} }
//fermeture de la fenetre chat le user et la personne qui se deconnecte
if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) {
FenetreChat.fermer();
}
case 3 : case 3 :
MessagePseudo messageNewPseudo = (MessagePseudo) msg; MessagePseudo messageNewPseudo = (MessagePseudo) msg;
//Contact contact = list.findContact(messageNewPseudo.getPseudo()); //Contact contact = list.findContact(messageNewPseudo.getPseudo());
@ -276,7 +286,7 @@ public class Agent implements PropertyChangeListener{
boolean isNotOnList = Request.sendPseudo(destPseudo, "pseudoOK"); boolean isNotOnList = Request.sendPseudo(destPseudo, "pseudoOK");
if(!isNotOnList) { if(!isNotOnList) {
Contact dest = Request.getUser(destPseudo, "getUser"); Contact dest = Request.getUser(destPseudo, "getUser");
TCPChat connexionTCP = new TCPChat(user, destId); TCPChat connexionTCP = new TCPChat(dest, destId);
listTCPDeg.add(connexionTCP); listTCPDeg.add(connexionTCP);
connexionTCP.addPropertyChangeListener(this); connexionTCP.addPropertyChangeListener(this);
} }

查看文件

@ -7,6 +7,7 @@ import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -28,11 +29,11 @@ import server.Request;
import java.awt.*; import java.awt.*;
public class FenetreChat extends JFrame { public class FenetreChat extends JFrame implements PropertyChangeListener{
JFrame frame; static JFrame frame;
Agent agent; Agent agent;
Contact dest; //destinataire du message static Contact dest; //destinataire du message
Contact user; //utilisateur Contact user; //utilisateur
WindowAdapter wa; WindowAdapter wa;
@ -45,11 +46,22 @@ public class FenetreChat extends JFrame {
public FenetreChat(Agent agent, String userString) throws IOException { public FenetreChat(Agent agent, String userString) throws IOException {
FenetreChat.ouvert=true; FenetreChat.ouvert=true;
this.frame = new JFrame("Fenetre Chat avec "+ userString); this.frame = new JFrame("Fenetre Chat avec "+ userString);
this.agent = agent; this.agent = agent;
this.user = agent.getUser(); this.user = agent.getUser();
//this.dest = agent.getList().findContact(userString); //this.dest = agent.getList().findContact(userString);
this.dest = Request.getUser(userString, "getUser"); this.dest = Request.getUser(userString, "getUser");
InetAddress adr = dest.getAddress();
TCPChat t=null;
for(TCPChat tcp : agent.getListeTCPChat()) {
if(tcp.getSocket().getInetAddress().equals(adr)) {
t=tcp;
}
}
t.addPropertyChangeListener(this);
this.frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.frame.setSize(new Dimension(400, 400)); this.frame.setSize(new Dimension(400, 400));
@ -228,9 +240,40 @@ public class FenetreChat extends JFrame {
} }
} }
public void propertyChange(PropertyChangeEvent evt) {
switch(evt.getPropertyName()){
case "deconnexion" :
System.out.println("Je suis dans deconnexion");
InetAddress adr = dest.getAddress();
TCPChat t=null;
for(TCPChat tcp : agent.getListeTCPChat()) {
if(tcp.getSocket().getInetAddress().equals(adr)) {
t=tcp;
}
}
try {
t.getSocket().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
agent.getListeTCPChat().remove(t);
break;
}
}
public static boolean isOuvert() { public static boolean isOuvert() {
return ouvert; return ouvert;
} }
public static void fermer() {
frame.dispose();
}
public static Contact getDest() {
return dest;
}
} }

查看文件

@ -142,9 +142,10 @@ public class FenetreMenu {
JScrollPane scrollPane = new JScrollPane(ta); JScrollPane scrollPane = new JScrollPane(ta);
String users = Request.actifs("actifs"); String users = Request.actifs("actifs");
String users2 = users.replaceAll("\\s", "\n");
//String users = agent.getList().actifUsers(); //String users = agent.getList().actifUsers();
Vector<String> v = new Vector<String>(); Vector<String> v = new Vector<String>();
for(String pseudo : users.split("\n")) { for(String pseudo : users2.split("\n")) {
v.add(pseudo); v.add(pseudo);
} }

查看文件

@ -30,9 +30,10 @@ public class MessageChat extends Message{
} }
public String getMessage() { public String getMessage() {
return message; return message+" "+dateToString();
} }
public void setMessage(String message) { public void setMessage(String message) {
this.message = message; this.message = message;
} }

查看文件

@ -48,6 +48,7 @@ public class TCPChat extends Thread{
public void addPropertyChangeListener(PropertyChangeListener pcl) { public void addPropertyChangeListener(PropertyChangeListener pcl) {
this.support.addPropertyChangeListener("Msg TCP Recu", pcl); this.support.addPropertyChangeListener("Msg TCP Recu", pcl);
this.support.addPropertyChangeListener("deconnexion",pcl);
} }
@ -68,8 +69,10 @@ public class TCPChat extends Thread{
//System.out.println("Message reçu : "+msgRecu.getMessage() ); //System.out.println("Message reçu : "+msgRecu.getMessage() );
//} //}
} catch (IOException e) { } catch (IOException e) {
this.support.firePropertyChange("deconnexion",true,false);
System.out.println("Création et read du in impossible"); System.out.println("Création et read du in impossible");
e.printStackTrace(); break;
//e.printStackTrace();
} }
} }