Introduction à Java/Swing
Dessin structuré : premier éditeur graphique

L'objectif de cet exercice est de réaliser un éditeur graphique minimal afin de se familiariser avec le dessin 2D :

Le fichier GraphicalEditor.java montre comment utiliser un objet Component comme surface de dessin et comment y tracer un rectangle. Corriger la méthode de tracé pour qu'il soit possible de créer le rectangle en commençant par indiquer son coin inférieur droit.
Utiliser la classe ArrayList pour conserver dans PersistentCanvas les rectangles créés afin de pouvoir tous les afficher dans la méthode paint.
Ajouter un mode (i.e. un deuxième outil) à la classe GraphicalEditor afin de permettre la sélection et le déplacement des rectangles créés. Particulariser le tracé du rectangle sélectionné en augmentant par exemple l'épaisseur de son tracé.
Ajouter deux commandes permettant de supprimer et de dupliquer le rectangle sélectionné. Faire en sorte que les boutons donnant accès à ces commandes ne soient utilisables que si un rectangle est sélectionné.
Ajouter la possibilité de choisir la couleur du tracé et la couleur de remplissage du rectangle sélectionné et des futurs rectangles (utiliser la méthode showDialog de la classe JColorChooser).
Ajouter une classe abstraite CanvasItem et créer des classes dérivées RectangleItem, EllipseItem, LineItem et PathItem afin de pouvoir tracer différents types d'objets. Permettre le choix de l'objet tracé à l'aide d'un groupe (ButtonGroup) de boutons radio (JRadioButton).