clojure中的复杂GUI

Pet*_*ter 11 swing clojure

我今天刚刚开始使用clojure(但是,我已经使用了很多Java并且知道了功能范例)我想知道用一个合理的复杂界面构建一个clojure应用程序是否是一个好主意(拖放,删除,平移,缩放, ...)使用Swing?

我可以想象很多正常的摆动逻辑(特别是关于OO)必须绕过这种或那种方式.

我认为一切皆有可能,但是有可能以合理的方式进行吗?

我的意思是不是用螺丝刀而不是用锤子敲钉子?

这里有没有人有过使用Clojure构建GUI的经验(当然:Swing是理想的候选人吗?)

谢谢 !

mik*_*era 9

我发现使用Swing在Clojure中构建合适的用户界面相对容易.但是,您有几个选项可以做到这一点:

  • 像在Java中一样编写代码,只需使用Clojure中的Java interop来调用相关的Swing API.这篇文章很好地解释了如何使用一些宏观魔法来让你的生活更轻松.
  • 使用Clojure GUI包装器进行Swing,例如跷跷板clj-swing.我的看法是这些工具有可能帮助你在惯用的Clojure中编写一些非常简洁的GUI代码


Pau*_*ato 6

Clojure的软件事务内存子系统的一个非常酷的功能是它允许你设置变量监视:每当变量(通过任何东西)改变时,你的回调就会被执行.这有助于实现一种强大的GUI编程,GUI根据变量的状态自动更新自身.

http://www.paullegato.com/blog/swing-clojure-gui-black-scholes/上详细介绍了一个简短但非平凡的Swing GUI示例.