Pr
og
ra
mm
ez in
te
ll
ig
ent
Ce cahier montre aux développeurs Java comment exploiter la très riche
bibliothèque standard Swing à travers la création d’une application
graphique 3D ergonomique et fiable.
Cet ouvrage décrit la création d’un logiciel libre d’aménagement d’intérieur
développé avec Java 5 et Swing, de sa conception UML jusqu’à sa distribution,
en passant par l’utilisation d’Eclipse, dont les astuces de productivité sont
dévoilées. Le développeur y découvrira comment exploiter efficacement les
nombreuses fonctionnalités de Swing : création d’arbres, de tableaux et de
boîtes de dialogue, dessin dans un composant graphique, glisser-déposer,
gestion d’opérations annulables, intégration d’un composant 3D...
Code éditeur : G12019
ISBN : 2-212-12019-2
ISBN 13 : 978-2-212-12019-6
39
97 8 2 2 1 2 1 2 01 9 6
Sommaire
Présentation de l’étude de cas Sweet Home 3D, une application d’agencement des meubles
dans un logement Méthodologie eXtreme Programming Mise en place de l’environne-
ment de développement Java SE 5 Eclipse CVS SourceForge.net Choix techniques :
Swing ou SWT ? Architecture d’AWT, Swing et SWT Composants, layouts et listeners
JFace Maquettes Swing et SWT de l’étude de cas avec Visual Editor Arbre du catalogue
des meubles Scénario de test Architecture à trois couches Test JUnit Classe JTree
Modèle d’arbre Localisation Renderer Chargement des images avec un exécuteur mul-
tithread Tableau des meubles du logement Classe JTable Modèle de tableau Modi-
fication du tableau avec MVC Architecture Modèle/Vue/Contrôleur Design patterns
Gestion de la sélection Actions annulables Gestionnaire d’opérations annulables Action
Menus et barre d’outils Refactoring avec la réflexion Composant graphique du plan
Test graphique Abbot Sous-classer JComponent Dessiner avec Java 2D Gestion de la
souris et du clavier Diagramme d’états-transitions Vue 3D du logement Java 3D Arbre
d’une scène 3D Transformations 3D Chargement de modèles Éclairage Interaction
avec la souris Enregistrement et lecture d’un logement Sérialisation Choix d’un fichier
Boîtes de dialogue standards Fenêtre principale Intégration dans Mac OS X Glisser-
déposer et copier-coller Mise en œuvre de la classe TransferHandler Gestion du focus
Édition des préférences utilisateur Disposition des composants GridBagLayout Classe
Preferences Déploiement et installation avec Java Web Start.
Java SE 5 • AWT/Swing • Java 3D • Java Web Start
SWT/JFace • JUnit • Abbot • Eclipse • CVS • UML • MVC • XP
avec
les Cahiers
du Programmeur
Emmanuel Puybaret est
ingénieur en informatique et aéro-
nautique et a plus de douze ans
d’expérience en programmation
objet multi-plate-forme dans
des domaines aussi variés que
l’industrie, les télécoms et la
banque. Consultant indépendant
partagé entre développements et
formations, il a créé en 1998 le
site eteks.com entièrement
consacré à Java.
@
L’étude de cas de cet ouvrage a été testée sous Windows, Linux et Mac OS X !
Téléchargez l’intégralité de son code source et retrouvez-la en ligne !
www.editions-eyrolles.com • sweethome3d.sourceforge.net
les Cahiers
du Programmeur
Emmanuel Puybaret
E. Puybaret
Java
Swing
12019_Swing 16/11/06 9:10 Page 1
© Groupe Eyrolles 2006,
ISBN : 2-212-12019-2
ISBN 13:
978-2-212-12019-6
© Groupe Eyrolles, 2006
chapitre 7
© Groupe Eyrolles, 2006
Gestion des actions annulables
« C’est en se trompant qu’on apprend » : la traduction
informatique de ce dicton sont les fonctions Annuler et Refaire
que l’on trouve dans tout logiciel moderne. Voyons comment
les intégrer à notre étude de cas.
SOMMAIRE
B
Scénario de test n° 4
B
Opérations annulables
B
Activation et désactivation
des actions
B
Intégration des menus
et de la barre d’outils
MOTS-CLÉS
B
Commande
B
UndoManager
B
AbstractAction
B
ActionMap
B
JToolBar
B
JMenuBar
B
Réflexion
Les Cahiers du Programmeur Swing
© Groupe Eyrolles, 2006
206
Scénario n° 4
Le quatrième scénario doit permettre d’annuler et de refaire les modifica-
tions programmées dans le scénario précédent. Techniquement, le déve-
loppement de ce scénario nous permettra d’aborder les sujets suivants :
l’intégration des classes Swing spécifiées par le package
javax.swing.undo qui permettent de gérer les opérations annulables ;
la mise en place d’actions réutilisables dans l’application pour gérer
l’activation, la désactivation et la sélection de ses menus et des bou-
tons de sa barre d’outils.
Spécifications des actions annulables
Ce scénario doit enrichir l’application de fonctionnalités qui permet-
tront à l’utilisateur d’annuler et de refaire l’ajout et la suppression de
meubles dans le logement, ainsi que les opérations annulables prévues
dans les scénarios suivants. Sophie demande donc aux développeurs de
créer un scénario de test qui sera basé sur une fenêtre où apparaîtra
l’arbre du catalogue et un tableau de meubles l’un en dessous de l’autre,
avec des boutons
Ajouter
,
Supprimer
,
Annuler
et
Refaire
et des éléments
de menus correspondants. Les éléments de menus
Ajouter
et
Supprimer
appartiendront au menu
Meubles
, et les éléments
Annuler
et
Refaire
au
menu
Edition
.
Par ailleurs, Sophie met en avant les points suivants :
les boutons et les menus
Ajouter
,
Supprimer
devront être activés et
désactivés en fonction de la sélection en cours dans l’arbre du cata-
logue et le tableau des meubles ;
les boutons et les menus
Annuler
et
Refaire
devront être activés et
désactivés en fonction de la possibilité d’annuler ou de refaire une
opération ;
les infobulles des boutons et des menus devront être localisées ;
•les menus
Ajouter
,
Annuler
et
Refaire
pourront être actionnés grâce à
des raccourcis clavier.
Scénario de test
À partir des spécifications précédentes, Sophie reprend le scénario de
test précédent qu’elle modifie ainsi :
1Créer une fenêtre contenant l’arbre du catalogue des meubles et un
tableau de meubles, avec des boutons et les menus
Ajouter
,
Supprimer
,
Annuler
et
Refaire
; vérifier que tous les boutons et les menus sont
désactivés.
7 – Gestion des actions annulables
© Groupe Eyrolles, 2006 207
2Sélectionner les deux premiers meubles dans l’arbre et vérifier que
seuls le bouton et le menu
Ajouter
sont activés.
3Ajouter les meubles sélectionnés au tableau en actionnant le bouton
Ajouter
et vérifier que les boutons et les menus
Ajouter
,
Supprimer
et
Annuler
sont activés.
4Sélectionner le premier meuble du tableau, le supprimer en action-
nant le bouton
Supprimer
et vérifier que les boutons et les menus
Ajouter
et
Annuler
sont activés.
5Annuler l’opération précédente en actionnant le bouton
Annuler
et
vérifier que le logement contient le meuble supprimé précédemment,
qu’il est sélectionné et que tous les boutons et les menus sont activés.
6Annuler encore la dernière opération, vérifier que le logement n’a
aucun meuble et que seuls les boutons et les menus
Ajouter
et
Refaire
sont activés.
7Refaire la dernière opération annulée en actionnant le bouton
Refaire
,
vérifier que le logement contient bien les deux meubles ajoutés au
départ, qu’ils sont sélectionnés et que tous les boutons et les menus
sont activés.
8Refaire l’opération de suppression, vérifier que le tableau ne contient
plus qu’un meuble non sélectionné et que les boutons et les menus
Ajouter
et
Annuler
sont activés.
Matthieu recommande aux développeurs de factoriser les instructions de
création des boutons, des menus et de leur listener d’action dans le logi-
ciel, afin d’éviter à l’avenir la répétition inutile de ce code dans les pro-
grammes de test et l’application finale.
Opérations Annuler/Refaire dans Swing
Aussitôt qu’on veut être capable d’annuler une modification faite dans
une application, il est fondamental de s’intéresser à la gestion des opéra-
tions annulables, car la mise en place de cette fonctionnalité oblige de
prévoir pour chaque modification annulable, une méthode et son con-
traire dans les classes. C’est la principale raison pour laquelle l’équipe a
décidé de programmer cette fonctionnalité le plus tôt possible dans
Sweet Home 3D, afin d’éviter de trop nombreuses modifications dans
les classes s’ils ne s’en occupent qu’à la fin. Thomas cherche ainsi à com-
prendre comment mettre en œuvre le système de gestion des opérations
Annuler/Refaire dans Swing, qu’il va mettre en œuvre dans
Sweet Home 3D.
E
RGONOMIE
Avantages
des opérations Annuler/Refaire
La possibilité d’annuler la dernière opération effec-
tuée est primordiale pour aider un utilisateur à
s’initier à un logiciel : un débutant peut plus facile-
ment tester sans risque les fonctionnalités du pro-
gramme en lui évitant de recourir constamment à
son mode d’emploi, puisqu’il sait que toute modifi-
cation opérée dans le programme est annulable.
La combinaison des opérations annuler et refaire
est quant à elle intéressante pour comparer visuel-
lement l’effet d’une commande dans le logiciel.
1 / 37 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !