gpt4 book ai didi

swing - 在Clojure中使用Swing-编译器异常: could not initialise RepaintManager

转载 作者:行者123 更新时间:2023-12-02 10:57:52 27 4
gpt4 key购买 nike

我刚刚开始尝试使用Swing使用Clojure创建UI。
但是我尝试加载它时遇到了CompilerException异常。我一直在关注本教程“https://stuartsierra.com/2010/01/02/swing-into-actions-with-clojure”。

我正在使用带有草书的IntelliJ IDEA社区,使用了Leiningen和Clojure 1.8,并且我使用的是Linux Mint 19.1(即使如此也很重要)。

我的代码:

(defn say-hello []
(JOptionPane/showMessageDialog
nil "Hello, World!" "Greeting" JOptionPane/INFORMATION_MESSAGE))

(def act (proxy [ActionListener] []
(actionPerformed [event] (say-hello))))

(def button (doto (JButton. "Click Me!")
(.addActionListener act)))

(def panel (doto (JPanel.)
(.add button)))
(def frame (doto (JFrame. "Hello Frame")
(.setSize 800 800)
(.setContentPane panel)
(.setVisible true)))


(def frame (doto (JFrame. "SportSeer")
(.setSize 800 800)
(.setVisible true)))

通过nREPL运行时,我得到:
Loading src/sportseer_client/core.clj... 
CompilerException java.lang.NoClassDefFoundError: Could not initialize class javax.swing.RepaintManager, compiling:(core.clj:12:13)

编辑:
另外,当我重新启动REPL并第一次加载文件时,出现此错误:
Loading src/sportseer_client/core.clj... 
CompilerException java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper, compiling:(core.clj:12:13)

当仅在repl内搞乱时,以某种方式我有这个示例工作,然后可以从文件中毫无问题地进行加载。除了使用其他导入功能,不知道我做了什么不同的事情:

(import '(javax.swing JOptionPan JButton JFrame JPanel))

但我再也无法复制它并使它工作。

我们将不胜感激为我指出正确方向的任何帮助。

最佳答案

尝试在具有OpenJDK 8的Linux服务器上运行PDF生成代码(使用AWT)时,我已经看到了CompilerException java.awt.AWTError: Assistive Technology not found。切换到JDK 10/11后,错误消失了。

与图形相关的代码可能存在很多“有趣”的问题,尤其是当您在没有正确显示的服务器上运行时。

我知道在docker中运行Alpine Linux发行版时会遇到CompilerException java.lang.NoClassDefFoundError: Could not initialize class错误-尽管它是另一种错误:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.image.IntegerInterleavedRaster
在我们的案例中,它最终与fontconfig包相关。对于Apline Linux,以下帮助:apk --update add ttf-dejavu
有关此问题的更多信息:

  • OpenJDK错误https://bugs.alpinelinux.org/issues/7372
  • Could not initialize class sun.awt.X11FontManager using openjdk 8 on alpine linux
  • 关于swing - 在Clojure中使用Swing-编译器异常: could not initialise RepaintManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55381014/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com