| Caroline Appert | Michel Beaudouin-Lafon |
|
Bat 650, Université Paris-Sud 91405 Orsay cedex Tel: +33 1 69 15 34 60 Fax: +33 1 69 15 65 86 appert_at_lri.fr |
Bat 650, Université Paris-Sud 91405 Orsay Cedex, France Tel: +33 1 69 15 69 10 Fax: +33 1 69 15 65 86 |
SwingStates is a library that adds state machines to the Java Swing user interface toolkit. Unlike traditional approaches, which use callbacks or listeners to define interaction, state machines provide a powerful control structure and localize all of the interaction code in one place. SwingStates takes advantage of Java's inner classes, providing programmers with a natural syntax and making it easier to follow and debug the resulting code. SwingStates tightly integrates state machines, the Java language and the Swing toolkit. It reduces the potential for an explosion of states by allowing multiple state machines to work together. SwingStates can be used to add new interaction techniques to existing Swing widgets, to program new widgets by using the flexible and powerful SwingStates' Canvas and to control high-level dialogues.
C. Appert and M. Beaudouin-Lafon. (2008). SwingStates: Adding state machines to Java and the Swing toolkit. Journal Software Practice and Experience. 38, 11 (Sep. 2008), 1149-1182.
C. Appert and M. Beaudouin-Lafon. (2006). SwingStates: Adding State Machines to the Swing Toolkit. In Proc. ACM symposium on User Interface Software and Technology, UIST 2006, Montreux, Suisse. ACM Press, New York, NY, April 2006, pages 319-322. (acceptance rate: 23%, 40/174)
C. Appert and M. Beaudouin-Lafon. (2006) SMCanvas : augmenter la boîte à outils Java Swing pour prototyper des techniques d'interaction avancées. In Proc. 18ème conférence francophone sur l'Interaction Homme-Machine, IHM 2006. ACM Press, April 2006, pages 99-106. (acceptance rate: 41%, 19/46). Best paper.
These applets require at least Java 2 SDK, Standard Edition v 1.5.0 to run. Furthermore, since state machine initializations use Java reflection API, these applets require higher rights in security access than the default ones (these applets do not read or write on your file system, security access is only required for code introspection). That is why you are asked to accept or decline a certificate for the signed jar that contains these applets. If you don't trust the certificate, applets won't run.
In any case, you can download SwingStates source code on sourceforge website and run the examples on your local configuration. All applets source code is in package fr.lri.swingstates.applets.