L'objectif de cet exercice est d'utiliser le
widget canvas
et
une machine
à états de la librairie
SwingStates pour
créer un bouton (pour en savoir plus sur SwingStates,
consulter cette page).
SimpleButton.java
.
Ce fichier crée un canvas
et un
objet SimpleButton
destiné à encapsuler les éléments
visuels et le comportement du bouton. Pour le moment, seul le texte du
bouton est dessiné sur le canvas (à l'aide d'un
objet CText
) et aucun comportement ne lui est
associé.simple.getShape().translateBy(100,100)
de la
fonction main
.CExtensionalTag
afin de pouvoir réagir aux
interactions à la souris sur le bouton. Faire en sorte que le bord du
rectangle s'épaississe lorsque la souris le survole et qu'il change de
couleur si l'utilisateur enfonce le bouton de la souris au-dessus de
lui (voir images ci-dessous). L'action associée au bouton
(e.g. doClick
) ne devra être déclenchée que si le bouton
de la souris a été enfoncé et relâché au-dessus du bouton
(voir cette vidéo). Prévoir le cas où
le bouton de la souris est relâché en dehors du bouton et celui où le
pointeur sort puis entre à nouveau dans le bouton...
JFrame
et d'un
objet StateMachineVisualization
,
afficher la machine à états créée à l'étape précédente.armTimer
et des
transitions TimeOut
pour permettre le déclenchement d'actions spécifiques sur un demi-clic
(bouton maintenu enfoncé pendant x
millisecondes), un
clic et demi (un clic suivi d'un demi-clic) et un double-clic.SimpleButton
le bouton de la souris et le
modificateur éventuel qui serviront à déclencher les actions.