我在下面插入了我的主要名称空间;当我运行./gradlew run
时,只要我注释掉primary-screen (.getPrimary Screen)
行,它就可以正常运行,所以无论出于什么原因,这似乎都被破坏了?
(ns lyrion.cec
(:gen-class)
(:require [clojurefx.clojurefx :as fx])
(:import (javafx.stage Stage Screen)
(javafx.scene Scene)
(javafx.scene.control Label)
(javafx.geometry Rectangle2D)))
(defn init []
nil)
(defn start [^Stage stage]
(let [content ^Label (Label. "Hello World")
primary-screen (.getPrimary Screen)
;;visual-bounds ^Rectangle2D (.getVisualBounds ^Screen primary-screen)
;;scene ^Scene (Scene. content (.getWidth visual-bounds) (.getHeight visual-bounds))
scene ^Scene (Scene. content 800 600)]
(.setScene stage scene)
(.show stage)))
(defn stop []
nil)
(defn -main
""
[& args]
(fx/start-app init start stop))
fx/start-app
是我的clojurefx库的功能,该函数创建一个Application
子类,并根据规范相应地调用init,start和stop。到目前为止,我在任何桌面JavaFX应用程序中都没有遇到任何问题。同样很奇怪的是,即使所有示例都相反,在JavaFXPorts中也有必要自己完成此操作。