Corrections de bugs

This commit is contained in:
Morgane Foussats 2021-02-11 18:46:41 +01:00
父節點 5be454e081
當前提交 48594fc3e1
共有 20 個文件被更改,包括 70 次插入23 次删除

查看文件

@ -16,7 +16,7 @@
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="C:/Users/momof/eclipse-workspace/chatGitElise/lib/JTattoo-1.6.13.jar"> <classpathentry kind="lib" path="lib/JTattoo-1.6.13.jar">
<attributes> <attributes>
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>

二進制
chatGitElise/b1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  大小: 16 KiB

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.

Binary file not shown.

查看文件

@ -163,12 +163,10 @@ public class Agent implements PropertyChangeListener{
FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo()); FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo());
} }
//fermeture de la fenetre chat le user et la personne qui se deconnecte //fermeture de la fenetre chat le user et la personne qui se deconnecte
if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) { if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) {
FenetreChat.fermer(); FenetreChat.fermer();
//getTCPChat().getSocket().close();
} }
break; break;
@ -360,6 +358,10 @@ public class Agent implements PropertyChangeListener{
return listTCPDeg; return listTCPDeg;
} }
public ArrayList<TCPChat> getListeTCPChat2(){
return listTCPOk;
}
public TCPChat getTCPChat() { public TCPChat getTCPChat() {
return this.listTCPDeg.remove(0); return this.listTCPDeg.remove(0);
} }

查看文件

@ -2,6 +2,8 @@ package gui;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
@ -17,6 +19,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.text.BadLocationException; import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultCaret; import javax.swing.text.DefaultCaret;
import javax.swing.text.SimpleAttributeSet; import javax.swing.text.SimpleAttributeSet;
@ -24,6 +27,7 @@ import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument; import javax.swing.text.StyledDocument;
import controller.Agent; import controller.Agent;
import controller.DataBase;
import model.Contact; import model.Contact;
import model.MessageAffichage; import model.MessageAffichage;
import network.TCPChat; import network.TCPChat;
@ -33,6 +37,18 @@ import java.awt.*;
public class FenetreChat extends JFrame implements PropertyChangeListener{ public class FenetreChat extends JFrame implements PropertyChangeListener{
private static FenetreChat instance = null;
public static FenetreChat getInstance(Agent agent, String userString) throws IOException {
synchronized (FenetreChat.class) {
FenetreChat fc = instance;
if(fc == null) {
fc = new FenetreChat(agent, userString);
}
return fc;
}
}
static JFrame frame; static JFrame frame;
static Agent agent; static Agent agent;
static Contact dest; //destinataire du message static Contact dest; //destinataire du message
@ -41,6 +57,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
WindowAdapter wa; WindowAdapter wa;
JPanel panel; JPanel panel;
static JTextArea text; static JTextArea text;
JButton envoyer;
private TCPChat t=null; private TCPChat t=null;
@ -48,7 +65,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
private static boolean ouvert=false; private static boolean ouvert=false;
public FenetreChat(Agent agent, String userString) throws IOException { private 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);
@ -90,7 +107,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
this.addWidgets(); this.addWidgets();
//frame.getContentPane().add(panel, BorderLayout.CENTER); //frame.getContentPane().add(panel, BorderLayout.CENTER);
afficherHistorique(); afficherHistorique();
frame.getRootPane().setDefaultButton(envoyer);
frame.addWindowListener(wa); frame.addWindowListener(wa);
frame.setVisible(true); frame.setVisible(true);
@ -126,10 +143,32 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
//zone pour rentrer les message à envoyer //zone pour rentrer les message à envoyer
text = new JTextArea(10, 3); text = new JTextArea(10, 3);
text.setForeground(Color.WHITE); text.setForeground(Color.WHITE);
text.setFont(new Font("Century Schoolbook", Font.PLAIN, 11)); text.setBackground(Color.GRAY);
text.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
text.setFont(new Font("Century Schoolbook", Font.PLAIN, 12));
text.setText("Enter your message"); text.setText("Enter your message");
text.setOpaque(false); text.setOpaque(false);
text.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER){
e.consume();
}
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
});
JScrollPane sp = new JScrollPane(text); JScrollPane sp = new JScrollPane(text);
//zone affichage texte //zone affichage texte
@ -143,7 +182,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
frame.getContentPane().add(sp2, gbc); frame.getContentPane().add(sp2, gbc);
//bouton envoyer //bouton envoyer
JButton envoyer = new JButton("Send"); envoyer = new JButton("Send");
envoyer.setOpaque(false); envoyer.setOpaque(false);
frame.getRootPane().setDefaultButton(envoyer); frame.getRootPane().setDefaultButton(envoyer);
envoyer.addActionListener(new ActionListener() { envoyer.addActionListener(new ActionListener() {
@ -279,6 +318,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
e.printStackTrace(); e.printStackTrace();
} }
agent.getListeTCPChat().remove(t); agent.getListeTCPChat().remove(t);
agent.getListeTCPChat2().remove(t);
break; break;
} }
@ -289,20 +329,6 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{
} }
public static void fermer() { public static void fermer() {
TCPChat t = null;
/*try {
InetAddress adr = dest.getAddress();
for(TCPChat tcp : agent.getListeTCPChat()) {
if(tcp.getSocket().getInetAddress().equals(adr)) {
t=tcp;
}
}
t.getSocket().close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}*/
frame.dispose(); frame.dispose();
} }

查看文件

@ -8,6 +8,9 @@ import java.awt.GridLayout;
import java.awt.Image; import java.awt.Image;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JButton; import javax.swing.JButton;
@ -97,6 +100,21 @@ public class FenetreInscription implements ActionListener {
JLabel text = new JLabel("Login: ", SwingConstants.CENTER); JLabel text = new JLabel("Login: ", SwingConstants.CENTER);
text.setForeground(Color.WHITE); text.setForeground(Color.WHITE);
text.setOpaque(false); text.setOpaque(false);
loginfield.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
if(e.getKeyChar() =='?' || e.getKeyChar() == '&' || e.getKeyChar() == '/' || e.getKeyChar() =='=' || e.getKeyChar() == KeyEvent.VK_SPACE) {
e.consume();
}
}
});
pseudofield.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if(e.getKeyChar() =='?' || e.getKeyChar() == '&' || e.getKeyChar() == '/' || e.getKeyChar() =='=' ||e.getKeyChar() == KeyEvent.VK_SPACE ) {
e.consume();
}
}
});
JLabel text2 = new JLabel("Pseudo: ", SwingConstants.CENTER); JLabel text2 = new JLabel("Pseudo: ", SwingConstants.CENTER);
text2.setForeground(Color.WHITE); text2.setForeground(Color.WHITE);
text2.setOpaque(false); text2.setOpaque(false);

查看文件

@ -194,11 +194,12 @@ public class FenetreMenu {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
new FenetreChat(agent, selected.toString()); FenetreChat.getInstance(agent, selected.toString());
} catch (IOException e) { } catch (IOException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
cb.setSelectedItem(agent.getUser().getPseudo());
} }
}); });