jTimer is build according to JSR-296 which define swing application lifecycle. He is build on reference implementation : Swing Application Framework.
jTimer use Swingx additional components set.
Pur java, idle detection seems to be impossible. So, this application use JNA to access those informations.