D14 - TP4 - Entrées/Sorties et IHM

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.

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 :

  • Ajouter une méthode void sauverChiens(Collection c, String fichier) et une méthode sauverChien(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) et Collection 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é.
  • 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.

  • En utilisant la classe Socket, créer un classe Client (qui ouvre une connexion vers le serveur et y sérialise des objets) et une classe Serveur qui attend un flux d’objets sérialisés, qui les désérialise et les affiche sur la console.

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).

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).

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