Clojure 的新手。
我想分享一个对我来说似乎很奇怪的行为,但可能完全没问题。我遵循了 github https://gist.github.com/daveray/1441520#file-seesaw-repl-tutorial-clj-L381上的教程,更准确地说,是我应该向标签添加监听器的部分。让我们创建一个构造函数并显示助手:
(defn make-lb [s]
(listbox :model (-> (symbol s) ns-publics keys sort)))
(defn display [content frame]
(config! frame :content content)
content)
这完美地工作:
(def lb (make-lb "clojure.core"))
(display (scrollable lb) f)
(listen lb :selection (fn [e] (println "Selection is " (selection e))))
但是,这不会:
(def lb (scrollable (make-lb "clojure.core")))
(display lb f)
(listen lb :selection (fn [e] (println "Selection is " (selection e))))
注意不同的“可滚动”位置。在第二种情况下,编译器告诉我“未知事件类型:selection seesaw.util/illegal-Argument (utils.clj:19)”
我看不出第一个片段起作用的任何原因,而第二个片段不起作用。我对 Swing 和/或其他 Java 库一无所知