我今天刚刚开始使用clojure(但是,我已经使用了很多Java并且知道了功能范例)我想知道用一个合理的复杂界面构建一个clojure应用程序是否是一个好主意(拖放,删除,平移,缩放,...)使用Swing?
我可以想象很多正常的挥杆逻辑(特别是关于OO)必须以某种方式绕过......
我认为一切皆有可能,但是有可能以合理的方式进行吗?
我的意思是不是用螺丝刀而不是用锤子敲钉子?
这里有没有人有过使用Clojure构建GUI的经验(当然:Swing是理想的候选人吗?)
谢谢!
答案 0 :(得分:9)
我发现使用Swing在Clojure中构建合适的用户界面相对容易。但是,您有几个方法可以做到这一点:
答案 1 :(得分:6)
Clojure的software transactional memory子系统的一个非常酷的功能是它允许你在变量上设置监视:每当变量(通过任何东西)改变时,你的回调就会被执行。这有助于实现一种强大的GUI编程,GUI根据变量的状态自动更新。
http://www.paullegato.com/blog/swing-clojure-gui-black-scholes/详细介绍了一个简短但非平凡的Swing GUI示例。
答案 2 :(得分:1)
由于其他人提到与答案相关的答案,我会问你一个问题:Swing是一个要求。虽然在clojure中编写Swing代码比在Java中更令人愉快,但它仍然是Swing,具有所有冗长和烦恼,特别是在具有硬设置要求的复杂应用程序中。
您是否考虑过Web UI,Clojure更适合自然?或 SWT 或 QT Jambi ,也可以使用Clojure工作。