Cet exercice a pour but d'illustrer les possibilités offertes par
SwingStates pour implémenter de nouvelles techniques d'interaction
compatibles avec les widgets Swing. Nous allons voir comment une
interaction de type crossing peut être ajoutée à des widgets de
type JCheckBox
et JButton
.
CrossingDemo.java
. Ce
programme crée une fenêtre, un canvas
occupant tout
l'espace disponible et une CStateMachine
attachée à ce
canvas.CStateMachine
pour afficher une trace colorée sur le canvas lorsque la souris est
déplacée dessus avec le bouton 1 enfoncé (voir
cette vidéo).JCheckBox
et
de JButton
, comme dans la figure ci-dessous. Utiliser la
méthode setGlassPane
de la classe JFrame
et
les méthodes setOpaque
et setVisible
de la
classe Canvas
pour que le canvas soit placé dans
le glass
pane de la fenêtre et que son fond soit transparent.JStateMachine
qui permette de détecter les
interactions de type crossing sur les widgets de
type AbstractButton
. Faire en sorte que cette machine
appelle la méthode doClick
du bouton concerné lorsqu'un
franchissement est détecté. Attacher une instance de cette classe à la
fenêtre. Cette vidéo illustre le
résultat à obtenir.JCheckBox
pour
mieux comprendre ce qui se passe lorsque la souris est déplacée avec
le bouton enfoncé au-dessus d'elles.