mirror of
https://github.com/LucasVbr/mini-chat.git
synced 2026-05-15 01:31:53 +00:00
Ajout de javadoc TODO terminer les commentaires
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user