INF224
Travaux Pratiques Java/Swing

Eric Lecolinet - Télécom ParisTech - Dept. INFRES

Liens utiles

Exercices

Le but de cet exercice est de créer une interface graphique Java/Swing qui permettra à terme d'interagir avec le logiciel déjà créé lors du TP C++/Objet. Comme précédemment, ce programme Java sera réalisé par étapes en ajoutant les fonctionnalités nécessaires petit à petit. Pensez à lire les "notes" ou "remarques" qui vous donneront des indications utiles avant de faire chaque étape. Vous pouvez utilisez l'IDE de votre choix pour programmer.

1ere Etape: Fenêtre principale et quelques interacteurs

Créez une fenêtre principale (dérivant de JFrame) contenant une zone de texte multi-lignes (JTextArea) et trois boutons (JButton). Faites en sorte que, lorsqu'on les active, les deux premiers boutons ajoutent une ligne de texte (différente pour chaque bouton) à la zone de texte et que le dernier bouton termine l'application (cf. méthode exit(int)() de la classe System).

Notes :

Lancez votre programme, cliquez plusieurs fois sur les deux premiers bouton, retaillez la fenêtre. Que constate-t'on ?

En fait, il est généralement nécessaire d'ajouter des ascenseurs à un JTextArea pour le rendre réellement utilisable. Pour ce faire, mettez ce composant dans un JScrollPane (en utilisant le constructeur adéquat de JScrollPane).

2eme Etape: Menus, barre d'outils et actions

Nous allons maintenant rajouter une barre de menus (JMenuBar) comprenant un menu déroulant (JMenu) ainsi qu'une barre d'outils (JToolBar). Il faudra, comme de juste, placer la barre d'outils dans la zone nord de la fenêtre principale. La barre de menus sera ajoutée à la fenêtre via sa méthode setJMenuBar().

Le menu déroulant et la barre d'outils contiendront tous les deux les mêmes boutons que précédemment:

Notes

3eme Etape: Interaction client/serveur

Cette étape vise à faire communiquer votre programme Java avec le programme C++, faisant office de serveur, que vous avez réalisé aux TPs précédents. Tout d'abord, téléchargez le programme Client.java. Ce programme fait la même chose que le programme client.cpp vu à la question 11 du TP C++. Compilez le et vérifiez qu'il interagit correctement avec le serveur C++.

Adaptez le code que vous avez écrit à l'étape précédente pour créer une interface graphique qui interagisse avec le serveur C++. Les fonctionnalités souhaitées sont les mêmes qu'à la question 13 du TP C++ : pouvoir rechercher un objet multimédia (l'affichage devant se faire sur l'interface graphique Java Swing qui joue le rôle de télécommande), et pouvoir "jouer" un objet multimédia (sur le serveur C++, qui fait office de "set-top box").

Notes

4eme Etape (obligatoire): Créer un Makefile

Vous avez probablement utilisé un IDE qui a créé des fichiers un peu partout. C'est bien pour développer mais pas forcément pour déployer sur d'autres machines et encore moins ... pour corriger !

On vous demande dans cette question, d'adapter ce Makefile qui va permettre de compiler puis d'executer automatiquement le programme Java (la télécommande de l'étape 3) juste en tapant make run dans le Terminal.

 

Pour rendre les TPs

  1. Vous devez créer trois répertoires organisés comme suit :

  2. Chacun des deux programmes (C++ et Swing) doit pouvoir être compilé et executé sur une machine Unix de l'Ecole juste en allant dans le répertoire correspondant et en tapant "make run" dans le Terminal. Les deux parties (C++ et Java) doivent donc obligatoirement avoir un Makefile. Le programme C++ ne doit pas planter et le programme Java ne doit pas produire de "Null pointer exception".

    Un programme sans Makefile, qui ne compile pas ou qui plante sur une machine de l'Ecole sera considéré non rendu !

  3. Documenter votre code en utilisant Doxygen et écrire un bref fichier README commun aux deux parties précisant quelles questions ont été traitées et donnant les réponses aux questions ainsi que tous les commentaires que vous jugerez utiles. Ce fichier doit être en PDF, en HTML (en UTF-8) ou au format texte (impérativement en UTF-8). Il doit être placé dans le répertoire principal. N'oubliez pas de mettre votre nom dans le README.
  4. Enlever les fichiers .o, .class et les executables puis zipper votre répertoire principal, soit au format .zip, soit au format .tar.gz. Aucun autre format ne sera accepté !

  5. Allez à l'URL http://services.infres.enst.fr/rendutp/ puis :


BETISIER INF224: ATTENTION A BIEN VERIFIER :

Toutes les bêtises précédentes se sont déjà produites, y compris envoyer sa boîte mail et se tromper de nom !

Si vous avez un doute, cliquez sur le bouton aperçu de la page rendutp pour vérifier que votre projet a bien été déposé.



Eric Lecolinet - http://www.telecom-paristech.fr/~elc - Telecom ParisTech