Clojure Programming/Examples/Temperature Converter GUI

      Simple example GUI application (from discussion group, updated for 20080329 release):

      (import '(javax.swing JFrame JLabel JTextField JButton)
              '(java.awt.event ActionListener)
              '(java.awt GridLayout))
       
      (let [frame (new JFrame "Celsius Converter")
            temp-text (new JTextField)
            celsius-label (new JLabel "Celsius")
            convert-button (new JButton "Convert")
            fahrenheit-label (new JLabel "Fahrenheit")]
          (. convert-button
              (addActionListener
                 (proxy [ActionListener] []
                      (actionPerformed [evt]
                          (let [c (Double/parseDouble (. temp-text (getText)))]
                            (. fahrenheit-label
                               (setText (str (+ 32 (* 1.8 c)) " Fahrenheit"))))))))
          (doto frame 
                      ;(.setDefaultCloseOperation (JFrame/EXIT_ON_CLOSE)) ;uncomment this line to quit app on frame close
                      (.setLayout (new GridLayout 2 2 3 3))
                      (.add temp-text)
                      (.add celsius-label)
                      (.add convert-button)
                      (.add fahrenheit-label)
                      (.setSize 300 80)
                      (.setVisible true)))
      
      Last modified on 27 September 2009, at 13:49