diff options
author | scgilardi <scgilardi@gmail.com> | 2009-05-31 16:18:40 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2009-05-31 16:18:40 +0000 |
commit | df27c0a710440e2fef44f799dc5933f29ced44e1 (patch) | |
tree | d595429af235f07a4dfff0e2ac30dc42e3a60ca0 /src/clojure | |
parent | 0aea8bc4a65e9ea366078b13cf49416f8242c4c1 (diff) |
miglayout/example: use invokeLater, refine handle-key
Diffstat (limited to 'src/clojure')
-rw-r--r-- | src/clojure/contrib/miglayout/example.clj | 18 |
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)) |