我正在尝试在我的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
它也没有用。
谢谢!
但是我对JavaFX完全不熟悉:
onAction="(use 'ui.listener) (add-tolist-listener event)"
这看起来像Java代码,所以在这里使用Clojure语法似乎不起作用?我怀疑你必须使用Java调用你的Clojure代码?
关闭"从Java调用Clojure代码"。
您必须尝试以下操作:
ui.listener.add_tolist_listener
您可能还会发现这篇博客文章为您提供了另一个尝试的想法:从 Java 调用 Clojure 代码。
现在通过启动函数设置操作
(.setOnAction (.lookup root "#startCalculationBtn")
(proxy [EventHandler] []
(handle [^ActionEvent event]
(start-calculation))
)
)
它有效。