6
A
回答
4
您可以使用add-watch添加回調函數,每次修改ref時都會調用回調函數。此回調應調用方法更新列表框:
(def data (ref [1 2 3]))
(defn list-model
"Create list model based on collection"
[items]
(let [model (javax.swing.DefaultListModel.)]
(doseq [item items] (.addElement model item))
model))
(def listbox (seesaw.core/listbox :model []))
(add-watch data nil
(fn [_ _ _ items] (.setModel listbox (list-model items))))
4
另一種方式來做到這一點是裁判的內容綁定到列表框的模式,採用seesaw.bind。
(require [seesaw core [bind :as b]])
(def lb (listbox))
(def r (ref []))
(b/bind r (b/property lb :model))
seesaw.bind庫很值得探索,恕我直言。 API一旦你有一些想法是如何結合在一起的文件,這是很好的記錄; this blog post是一個很好的介紹。
相關問題
- 1. Chrome App Not Autoupdating
- 2. Autoupdating .net應用程序
- 3. clojure中的a..b列表
- 4. Clojure的:在一個列表
- 5. 轉列出的Clojure的列表
- 6. clojure,使用函數列表
- 7. 在Clojure中排序列表
- 8. 離線的Javascript然Autoupdating計算器和電子表格
- 9. Clojure的 - 從單獨的列表
- 10. iOS 7:檢測App autoupdating是否啓用?
- 11. Clojure更新列表中的地圖
- 12. 將csv讀入clojure的列表
- 13. Clojure。 dict的關鍵詞列表
- 14. EVAL列表到一個讓上Clojure的
- 15. Clojure ::重複元素的測試列表
- 16. Clojure的:在列表或其他集合
- 17. 評估Clojure中的函數列表
- 18. Clojure的列表理解和試劑
- 19. 循環訪問Clojure中的「let」列表?
- 20. 在地圖列表比較值的Clojure
- 21. Clojure打印沒有括號的列表?
- 22. Clojure:列表和返回列表的函數之間的區別
- 23. 旋轉列表的列表矩陣Clojure中
- 24. Clojure映射將列表返回到平面列表的函數
- 25. 將嵌套列表轉換爲Clojure中的集合列表?
- 26. 推薦Clojure的Web框架
- 27. Clojure的REST API框架
- 28. 列表框列表框的另一個
- 29. asp.net列表框VS的WinForms列表框
- 30. Clojure子陣列
非常感謝;這工作完美 –