Clojure, JavaFX Eventhandler 不在命名空间中



我正在尝试在我的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))
    )
  )

它有效。

相关内容

  • 没有找到相关文章

最新更新