我试图在我的Clojure Projekt中为基于FXML的View创建一个EventHandler。 如下所述:http://drowsy.de/blog/?p=7我在FXML中添加了这个
onAction="(use 'ui.listener) (add-tolist-listener event)"
到一个按钮。
但是当我启动应用程序时,我收到以下错误消息:
LoadException Error resolving onAction='(use 'ui.listener)
(add-tolist-listener event)', either the event handler is not in
the Namespace or there is an error in the script.
在ui.listener中是事件处理程序
(defn add-tolist-listener [event]
(println "I'm a Button"))
知道为什么这不起作用? 我用这种表示法尝试了它
onAction = #add-tolist-listener
并且它也没有奏效。
谢谢!
答案 0 :(得分:0)
我完全不熟悉JavaFX,但是:
onAction="(use 'ui.listener) (add-tolist-listener event)"
这看起来像Java代码,所以在这里使用Clojure语法似乎不会起作用?我怀疑你必须使用Java调用你的Clojure代码吗?
离开"Calling Clojure code from Java"。
您必须尝试以下内容:
ui.listener.add_tolist_listener
您可能还会发现此博客文章为您提供了另一个尝试:Invoking Clojure code from Java。
答案 1 :(得分:0)
现在通过
在我的启动功能中设置动作(.setOnAction (.lookup root "#startCalculationBtn")
(proxy [EventHandler] []
(handle [^ActionEvent event]
(start-calculation))
)
)
它有效。