SwingStates: adding state machines to Java and the Swing toolkit

  • Authors:
  • C. Appert;M. Beaudouin-Lafon

  • Affiliations:
  • LRI/ Université/ Paris-Sud & CNRS/ 91405 Orsay, France and INRIA/ 91893 Orsay, France;LRI/ Université/ Paris-Sud & CNRS/ 91405 Orsay, France and INRIA/ 91893 Orsay, France

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article describes SwingStates, a Java toolkit designed to facilitate the development of graphical user interfaces and bring advanced interaction techniques to the Java platform. SwingStates is based on the use of finite-state machines specified directly in Java to describe the behavior of interactive systems. State machines can be used to redefine the behavior of existing Swing widgets or, in combination with a new canvas widget that features a rich graphical model, to create brand new widgets. SwingStates also supports arbitrary input devices to implement novel interaction techniques based, for example, on bi-manual or pressure-sensitive input. We have used SwingStates in several Master's-level classes over the past two years and have developed a benchmark approach to evaluate the toolkit in this context. The results demonstrate that SwingStates can be used by non-expert developers with little training to successfully implement advanced interaction techniques. Copyright © 2007 John Wiley & Sons, Ltd.