Interface Graphique en Java avec SWING

L'objectif de ce devoir est de concevoir un système de gestion de petites annonces.
1) Une annonce contient un titre et un texte.
Le système se compose:

  • D'un serveur d'annonces. Celui-ci contient l'ensemble des annonces disponibles à un instant donné.
  • De clients qui peuvent effectuer trois types de requêtes au serveur (on utilisera le port 10000 pour se connecter au serveur):
    • FETCH: le serveur renvoie alors la liste des annonces publiées.
    • ADD <annonce>: le client demande au serveur d'ajouter l'annonce <annonce> dans la liste des annonces.
    • DEL <annonce>: le client demande au serveur de supprimer l'annonce <annonce> de la liste des annonces.

Il est demandé d'écrire:

  • Le programme Java correspondant au serveur.
  • Le programme Java correspondant au client.

2) L'interface graphique pour le client comporte les fonctionnalités FETCH, ADD et DEL sous forme de boutons et affiche la liste des titres d'annonces et le nombre d'annonces dans la liste en suivant le format de la figure ci-après.

Schéma Interface Graphique Java

Le bouton "Mise à jour" met à jour la liste des titres d'annonces et le label du nombre d'annonces.
Le bouton "Supprimer la sélection" permet de détruire l'annonce sélectionnée.
L'utilisateur ne peut sélectionner qu'un élément à la fois dans la liste des titres. Lorsqu'il sélectionne un élément, une boîte de message lui permettant de visualiser le texte de l'annonce apparaît.
Le bouton "Nouvelle annonce" permet de créer une nouvelle annonce. Il déclenche l'apparition d'une boîte de dialogue modale constituée de trois zones, cf figure suivante:

Boîte de dialogue modale

En haut, un label "Titre" suivi d'un champ texte permet d'entrer le titre de l'annonce. En-dessous, une zone de saisie de texte permet d'entrer le texte de l'annonce. Enfin, en-dessous, deux boutons "OK" et "Annuler" permettent d'ajouter la nouvelle annonce ou d'abandonner la commande. Bien entendu, les boutons "OK" et "Annuler" font également disparaître la boîte de dialogue.

3) Une annonce comporte maintenant (outre un titre et un texte) un nom d'auteur. Le comportement global du système comporte alors les modifications suivantes:

  • Une annonce est stockée sur le serveur avec le nom d'auteur. On considèrera que l'auteur est l'utilisateur actuel de la machine. Utilisez la commande System.getProperty("user.name") pour avoir ce nom.
  • La commande DEL n'est autorisée que pour l'auteur de l'annonce.

Remarque: Vous rendrez vos sources Java sous la forme d'une archive Java (.jar). Pensez à inclure un fichier README permettant de savoir quel est le programme à lancer. N'oubliez pas de commenter vos classes et de rendre celles-ci aussi modulaires que possible.

Aucun rapport n'était demandé pour ce projet donc je vous donne directement l'archive .jar contenant le code compilé pour exécuter le programme ainsi que le code source.

Créer une archive .jar

Voici une petite aide pour vous aider à créer vos archives Java exécutables au format JAR. Afin de spécifier quelle classe contient votre méthode statique main à lancer, vous devez créer un fichier Manifest.txt contenant la ligne suivante.

Main-Class: NomDeMaClasseMain

Une fois le Manifest édité, il faut ensuite compiler tous les fichiers de code source Java pour obtenir les fichiers compilés .class (javac *.java). Ensuite, il ne reste plus qu'à créer l'archive à l'aide de la commande suivante:
jar cfm monArchive.jar Manifest.txt *.class [autres fichiers à inclure, optionnel].
Voilà, votre archive est prête. Comme toute archive, celle-ci peut être décompressé à l'aide d'un logiciel tel que WinRar afin de récupérer les fichiers compressés. Autrement, si vous avez correctement créé le Manifest, vous pouvez exécuter votre archive avec la commande java -jar monArchive.jar.

Retour aux projets d'études