Maison ou une série d'éditeurs de dessin vectoriel
Auteur J. Ferber - (c) 2000
Une série
d'applets et d'applications montrant l'évolution d'un projet portant
sur la réalisation d'un petit logiciel de dessin vectoriel.
Le développement est progressif. On part d'une première version
correspondant à une applet qui n'affiche que des maisons, et on poursuit
en ajoutant des fonctionnalités de manière progressive. Le projet
s'appelle Maison, bien que l'affichage des maisons deviennent très secondaire
au fur et à mesure de l'évolution du logiciel.
Voici pour l'instant les versions disponibles:
- Maison1: une version pas très objet
qui montre simplement le fonctionnement d'une applet au travers de dessins
de petites maisons.
- Maison2: une version plus objet dans
laquelle il est possible de dessiner d'autres types de dessins. Caractéristique
d'une version objet: les dessins sont maintenant réifiés. On
peut augmenter le nombre de types de dessins de manière simple.
- Maison3: une version dans laquelle on
peut créer des dessins de taille variable.
- Maison4: on peut en plus sélectionner
et faire bouger des dessins de taille variable. Une grille peut être
dessinée ou enlevée.
- Maison5: les figures (rectangulaires,
pas les lignes) peuvent maintenant voir leur taille être modifiée
directement à la souris.
- AnimApplet1: Ajoute une notion
d'animation en considérant les figures comme des "sprites",
c'est à dire des figures qui se déplacent. Mais ce n'est pas
encore parfait car il manque le double-buffering permettant d'éviter le scintillement
des objets à l'écran.
- AnimApplet1bis: Le même
que précédemment, mais on utilise une technique de double buffering
pour afficher les sprites afin d'éviter le scintillement dû au
réaffichage.
- AnimAppli1: Même programme que les deux
précédents. Seule différence, il s'agit maintenant d'une
application et non d'une applet. D'autre part, cette application utilise les
composants "swing" et non les composants AWT. On peut voir que les
modifications entre AnimApplet1 et AnimAppli1 sont mineures: transformation
des classes Button, Panel et Applet en JButton,
JPanel et JFrame, passage de l'initialisation de l'applet
en constructeur de JFrame (penser à faire pack()
et show() à la fin de l'initialisation de la frame si l'on
veut voir quelque chose..). Transformer aussi les appels à setLayout(..)
et add(..) utilisés dans l'applet en getContentPane().setLayout()
et getContentPane().add(..). A part cela je ne me souviens pas
d'autres modifications.
Pour l'utiliser, récupérez l'ensemble, dézippe le, éventuellement mettez à
jour les fichiers .bat, et lancer l'appli en clickant sur run.bat (version
Windows) ou tapez le lancement de l'application sous Unix.
- AnimAppli2: ajoute de nombreuses fonctionnalités:
interface plus graphique avec l'apparition de boutons avec des images et des
menus, et surtout un système complet de sauvegarde et de récupération
de dessins.
- AnimAppli3:
disparition totale des composants de figures du texte de l'application. On
peut donc ajouter de nouveaux composants graphiques sans avoir à recompiler
le source de l'application. On s'approche très sérieusement
de la notion de composant. Récupérer l'archive
ici. Attention, le javadoc n'est pas à jour... Mais on peut facilement
le regénérer.