Ouvrir et sauvegarder des dessins
Ouvrir et sauvegarder des dessins
On souhaite maintenant pouvoir sauver dans un fichier un dessin (composé de l'ensemble des formes tracées) et aussi de pouvoir recharger un dessin qui se trouve codé dans un fichier. On ajoutera une barre de menus à la fenêtre, on mettra un menu nommé "fichier" dans cette barre de menus où on pourra choisir "sauvegarder" ou bien "ouvrir" dans les items du menu "fichier".
Indications
- On définira une classe nommée BarreMenu pour la barre de menus. Cette classe étendra la classe JMenuBar et aura un constructeur :
- BarreMenu(PanneauDessin ardoise)
- Si ce n'est pas déjà le cas, on mettra l'objet PanneauDessin utilisé pour les tracés comme attribut de la classe Dessin
- Dans le main, on instanciera la classe BarreMenu en lui indiquant en paramètre le "PanneauDessin" de l'application.
- La méthode setJMenuBar de la classe JFrame permet d'ajouter une barre de menus à un JFrame.
- Dans le constructeur de la classe BarreMenu, on instanciera la classe JMenu pour faire un menu ; un constructeur de la classe JMenu prend en paramètre une chaîne de caractères qui donne le nom du menu.
- La méthode add de la classe JMenuBar permet d'ajouter un menu à une barre de menus.
- On ajoutera au menu ci-dessus deux items (instances de la classe JMenuItem) correspondant à la sauvegarce d'un dessin dans un fichier et à l'ouverture d'un fichier pour charger un dessin. On indiquera au constructeur de la classe JMenuItem les noms choisis pour les items.
- La méthode add de la classe JMenu permet d'ajouter un item à un menu.
- On ajoutera un ActionListener à chacun des deux items du menu. La méthode actionPerformed du listener ajouté sera alors exécutée en cas de sélection d'un de ces items.
- On ajoutera à la classe Forme l'implémentation de l'interface java.io.Serializable.
- On utilisera un JFileChooser pour choisir un fichier. Les méthodes showSaveDialog et showOpenDialog de cette classe permettent d'avoir une fenêtre de navigation dans les répertoires afin de respectivement sauvegarder ou ouvrir un fichier.
- Pour sauvegarder un dessin, on utilisera un ObjectOutputStream pour écrire d'un seul coup le Vector contenant l'ensemble des formes dans un fichier.
- Pour lire un dessin dans un fichier, on utilisera un ObjectInputStream pour lire d'un seul coup le Vector contenant un ensemble des formes dans le fichier ouvert.
Corrigé
et la classe Forme actualisée
Irene Charon
Last modified: Wed Jul 23 11:51:52 MEST 2003