aboutsummaryrefslogtreecommitdiff
path: root/src/clojure
diff options
context:
space:
mode:
authorscgilardi <scgilardi@gmail.com>2009-05-31 16:18:40 +0000
committerscgilardi <scgilardi@gmail.com>2009-05-31 16:18:40 +0000
commitdf27c0a710440e2fef44f799dc5933f29ced44e1 (patch)
treed595429af235f07a4dfff0e2ac30dc42e3a60ca0 /src/clojure
parent0aea8bc4a65e9ea366078b13cf49416f8242c4c1 (diff)
miglayout/example: use invokeLater, refine handle-key
Diffstat (limited to 'src/clojure')
-rw-r--r--src/clojure/contrib/miglayout/example.clj18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/clojure/contrib/miglayout/example.clj b/src/clojure/contrib/miglayout/example.clj
index b8dad4ae..c688e9fe 100644
--- a/src/clojure/contrib/miglayout/example.clj
+++ b/src/clojure/contrib/miglayout/example.clj
@@ -15,7 +15,8 @@
;; Created 31 May 2009
(ns clojure.contrib.miglayout.example
- (:import (javax.swing JButton JFrame JLabel JPanel JTextField))
+ (:import (javax.swing JButton JFrame JLabel JPanel JTextField
+ SwingUtilities))
(:use (clojure.contrib
[miglayout :only (miglayout components)]
[swing-utils :only (add-key-typed-listener)])))
@@ -29,14 +30,14 @@
(catch NumberFormatException _ "input?")))
(defn- handle-key
- "Clear output on most keys, show conversion on \"Enter\""
- [event in out]
+ "Clears output on most keys, shows conversion on \"Enter\""
+ [event out]
(.setText out
(if (= (.getKeyChar event) \newline)
- (fahrenheit (.getText in))
+ (fahrenheit (-> event .getComponent .getText))
"")))
-(defn main
+(defn converter-ui
"Lays out and shows a Temperature Converter UI"
[]
(let [panel
@@ -46,9 +47,14 @@
(JLabel.) {:id :output}
(JLabel. "\u00b0Fahrenheit"))
{:keys [input output]} (components panel)]
- (add-key-typed-listener input handle-key input output)
+ (add-key-typed-listener input handle-key output)
(doto (JFrame. "Temperature Converter")
(.setDefaultCloseOperation JFrame/DISPOSE_ON_CLOSE)
(.add panel)
(.pack)
(.setVisible true))))
+
+(defn main
+ "Invokes converter-ui in the AWT Event thread"
+ []
+ (SwingUtilities/invokeLater converter-ui))