I tried to build a Swing gui with Clojure and get an error I don't
understand. Perhaps it's more a swing-problem than a clojure-problem,
but I'm sure the solution is simple and someone here will know the
answer.

I have two frames, one serves as the main-window of the app and the
second one opens if a button is clicked. The purpose of the second one
is to give some status messages to the user while performing a complex
operation.

My problem is: I want to change a component (textbox or label) between
two function calls, but it doesn't work! When the second frame is
opened, it remains grey until all operations are finished. I built a
simple example to show the problem:

(ns guitest)

(import '(javax.swing JFrame JLabel JTextField JButton)
        '(java.awt.event ActionListener)
        '(java.awt GridLayout))

(defn complex-calc []
        (Thread/sleep 2000)
        (Math/random ))

(defn testgui []
  (let [frame (JFrame. "Test")
                        frame2 (JFrame. "Testwin")
        temp-text (JTextField.)
        convert-button (JButton. "Click!")]
    (doto frame
      (.setLayout (GridLayout. 1 1 1 1))
      (.add convert-button)
      (.setSize 100 100)
      (.setVisible true))
    (doto frame2
        (.setLayout (GridLayout. 1 1 1 1))
      (.add temp-text)
      (.setSize 100 100))
    (.addActionListener convert-button
      (proxy [ActionListener] []
        (actionPerformed [evt]
          (.show frame2)
          (complex-calc)
          (.setText temp-text "Calc1")
          (complex-calc)
          (.setText temp-text "Calc2")
          (complex-calc)
          (.setText temp-text "Calc3"))))))
(testgui)

In this example  (.setText temp-text "...") shows no effect. What have
I done wrong?

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to