此代码:
(import 'javax.swing.SwingUtilities)
(SwingUtilities/invokeLater (print "hi"))导致此错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
...我不知道这是否是一个问题,因为尽管出现了错误,代码本身实际上仍然有效(打印到REPL)。
但是,修改swing组件似乎不能正常工作:回调的carot监听器(.setText myTextArea“.setText”)会导致文本在“某些文本”之间交替,并在单击时将其设置为空,每次在nrepl-server的日志中抛出相同的错误。
以后调用的方式是否有问题,或者myTextArea的问题与此无关?
发布于 2015-06-16 17:48:17
SwingU实用程序/invokeLater采用Runnable。Clojure函数实现Runnable。但是,您要将(println "Hi")的结果(即nil )传递给invokeLater,从而获得NPE。您需要将它作为要调用的函数传递,而不是自己调用它。此示例将匿名函数传递给invokeLater。
(import 'javax.swing.SwingUtilities)
(SwingUtilities/invokeLater #(print "hi"))https://stackoverflow.com/questions/30871789
复制相似问题