Seesaw REPL Tutorial
Written by Eric Normand. Published: December 9, 2011

From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Reference: Seesaw REPL Tutorial
Dave Ray has written a commented source listing which guides you through building a simple GUI with Seesaw.
; How can we get to the radio buttons without using the rbs var? How about ; with a selector: (select f [:JRadioButton]) ;=> (#<JRadioButton ... > #<JRadioButton ... >)
. . .
; and, of course, you can register a listener for group selection changes (listen group :selection (fn [e] (when-let [s (selection group)] (println "Selection is " (id-of s)))))
I have only done a bit of GUI programming with Java (mostly in college). But rather than giving me flashbacks to that nightmare, Seesaw makes me feel secure that I could face the Swing dragon again.
From the Seesaw readme:
It's an experiment to see what I can do to make user interface development funner in Clojure.