résolution bugs

這個提交存在於:
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>

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

二進制
chatGit/lib/java-json.jar 一般檔案

未顯示二進位檔案。

查看文件

@ -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,8 +30,9 @@ 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);
} }
@ -59,17 +60,19 @@ public class TCPChat extends Thread{
while(true) { while(true) {
try { try {
String input = in.readLine(); String input = in.readLine();
MessageChat msgRecu = new MessageChat(this.socket.getInetAddress(), this.socket.getLocalAddress(), this.socket.getPort(), this.socket.getLocalPort(), 0, input); MessageChat msgRecu = new MessageChat(this.socket.getInetAddress(), this.socket.getLocalAddress(), this.socket.getPort(), this.socket.getLocalPort(), 0, input);
listeMessagesRecu.add(msgRecu); listeMessagesRecu.add(msgRecu);
//System.out.println("fire msg tcp recu"); //System.out.println("fire msg tcp recu");
this.support.firePropertyChange("Msg TCP Recu", true, false); this.support.firePropertyChange("Msg TCP Recu", true, false);
//if (!msgRecu.getMessage().equals(null)) { //if (!msgRecu.getMessage().equals(null)) {
//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();
} }
} }