Ajout de javadoc TODO terminer les commentaires

This commit is contained in:
Lucàs
2022-12-06 15:16:20 +01:00
parent eb9d8fe6e7
commit 8fb03bf6f9
13 changed files with 779 additions and 119 deletions
+51 -8
View File
@@ -1,8 +1,15 @@
/*
* FenetreClient.java, 06/12/2022
* INU Champollion, 2022-2023
* pas de copyright, aucun droits
*/
package ui;
import client.Client;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
@@ -10,6 +17,13 @@ import java.awt.event.WindowEvent;
import java.io.IOException;
import java.util.Objects;
/**
* Interface du client
*
* @author Gaël Burguès
* @author Laurian Dufrechou
* @author Lucàs Vabre
*/
public class FenetreClient extends JFrame {
private JTextField addressInput, portInput, pseudoInput, messageInput;
private JButton connexionButton, envoyerButton, deconnexionButton;
@@ -17,14 +31,22 @@ public class FenetreClient extends JFrame {
private JTextArea chatArea;
private JScrollPane scrollPane;
/**
* Le client lié à cette fenêtre
*/
private Client client;
/**
* Crée une nouvelle fenêtre client
*/
public FenetreClient() {
super("Fenêtre client");
add(mainPanel);
// On ne peut pas saisir dans la boîte de dialogue directement
// Configure le tchat
chatArea.setEnabled(false);
chatArea.setLineWrap(true);
chatArea.setDisabledTextColor(Color.BLACK);
// Au lancement, on ne peut pas envoyer de message sans être connecté au serveur
messageInput.setEnabled(false);
@@ -41,9 +63,11 @@ public class FenetreClient extends JFrame {
envoyerButton.addActionListener(e -> envoyerMessage());
deconnexionButton.addActionListener(e -> deconnexion());
// Quand on clique sur fermer la fenêtre, on ferme la connexion
// Quand on clique sur fermer la fenêtre, on ferme la connexion.
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {deconnexion();}
public void windowClosing(WindowEvent e) {
deconnexion();
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
@@ -51,6 +75,9 @@ public class FenetreClient extends JFrame {
this.setVisible(true);
}
/**
* Récupère la saisie de l'utilisateur et l'envoie au serveur
*/
private void envoyerMessage() {
{
String message = this.messageInput.getText();
@@ -66,6 +93,9 @@ public class FenetreClient extends JFrame {
}
}
/**
* Crée un client et le connecte au serveur à partir de l'IP et port du serveur avec le pseudo du client.
*/
public void connexion() {
String address = addressInput.getText();
int port = Integer.parseInt(portInput.getText());
@@ -80,14 +110,19 @@ public class FenetreClient extends JFrame {
this.client = new Client(address, port, pseudo, this);
this.client.start();
// Désactive le formulaire de connexion
addressInput.setEnabled(false);
portInput.setEnabled(false);
pseudoInput.setEnabled(false);
// Active l'interface de tchat
messageInput.setEnabled(true);
envoyerButton.setEnabled(true);
}
/**
* Déconnecte le client du serveur
*/
public void deconnexion() {
if (client == null) return;
@@ -95,28 +130,36 @@ public class FenetreClient extends JFrame {
this.client.addMessage("bye");
this.client = null;
// Vide le chat
// Vide le tchat
this.chatArea.setText("");
// Active les boutons pour changer de serveur
// Active le formulaire de connexion
addressInput.setEnabled(true);
portInput.setEnabled(true);
pseudoInput.setEnabled(true);
// Désactive les commandes de chats
// Désactive l'interface de tchat
messageInput.setEnabled(false);
envoyerButton.setEnabled(false);
}
/**
* Affiche un nouveau message dans la fenêtre de tchat
* @param message message à afficher dans le tchat
*/
public void displayNewMessage(String message) {
// Ajoute le message
chatArea.append(message + "\n");
// Ajoute le message dans l'interface de tchat
chatArea.append(String.format("%s\n", message));
// Va en bas de la fenêtre
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue(vertical.getMaximum());
}
/**
* Lance une nouvelle fenêtre de client
* @param args non utilisé
*/
public static void main(String[] args) {
new FenetreClient();
}