D14 - TP4 - Entrées/Sorties et IHM
Objectif
L’objectif ce TP est de d’illuster l’utilisation simple des entrées/sorties en Java et de mettre en place des IHM de base.
Les entrées/sorties
http://download.oracle.com/javase/tutorial/essential/io/index.html
En vous servant tu TP sur les animaux (ou de celui sur la Bibliothèque en remplacent les Chien par des Livres ou des Ordinateurs Portables) mettez en place les éléments suivants :
Input et Output Stream
- Ajouter une méthode
void sauverChiens(Collection c, String fichier)
et une méthodesauverChien(OutputStream os)
à la classe Chien qui sauvegarde l’état interne d’un chien dans un fichier en écrivant les types primitifs directement en binaire dans un fichier. Attention, méthodes d’instances ou de classe ? - Ajouter deux méthodes
Collection restaurerChiens(String fichier)
etCollection restaurerChiens(InputStream in)
à la classe Chien qui crée une collection d’instances de Chien à partir des informations stockées dans un fichier ou dans un inputstream. - Modifier les méthodes précédentes pour qu’un tampon soit utilisé.
- Modifier les méthodes précédentes pour que le fichier soit compressé.
Sérialisation classique
- Créer les méthodes
void sauverChien2(Collection c, String fichier)
et
Collection restaurerChien2(String fichier)
qui font la même chose en utilisant la sérialisation.
Les socket en Java
- En utilisant la classe
Socket
, créer un classeClient
(qui ouvre une connexion vers le serveur et y sérialise des objets) et une classeServeur
qui attend un flux d’objets sérialisés, qui les désérialise et les affiche sur la console.
Les IHM
Construction
Mettez en place une IHM simple qui permet d’afficher et de modifier une instance de la classe Chien
. Essayer d’utiliser un maximum de composants de Swing (cf. tutoriel). Cette classe sera appelée une vue de Chien.
Compléter l’interface pour qu’elle affiche une “liste de Chiens” représentés par leur nom ou leur tatouage (i.e. leur identifiant).
Activation
Compléter votre interface pour qu’elle puisse :
- d’afficher les informations qui viennent d’une instance Chien en utilisant en utilisant un contrôleur de Chien.
- permettre de sélectionner une chien dans le liste et d’afficher des informations (bouton afficher).
- permettre de créer des instances de
Chien
à partir des informations et d’afficher les collections produites (bouton créer).
Editeur d'IHM
Pour aller plus loin, vous pouvez utiliser un générateur d’IHM https://www.jetbrains.com/idea/help/swing-designing-gui.html
Sous linux, si vous avez des problèmes d’affichage ajouter
export GDK_NATIVE_WINDOWS=1
à votre .bashrc