Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:d14:tp:tp4 [2018/11/06 16:29] – modification externe 127.0.0.1enseignement:d14:tp:tp4 [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== 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é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é.
 +
 +==== 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 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.
 +===== Les IHM =====
 +http://download.oracle.com/javase/tutorial/uiswing/
 +==== 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''
 +
 +{{tag>D14 TP Java E/S IHM}}
  
 ---- struct data ---- ---- struct data ----
 +metadata.level       : 
 +metadata.Type        : TP
 +metadata.Nom         : 
 +metadata.Enseignements : D14
 +metadata.Promotions 
 +metadata.Technologies : Java
 +metadata.Thèmes     : E/S, IHM
 +metadata.Description : 
 ---- ----