在Clojure中做GUI的最佳方式是什么?
在Clojure中做GUI的最佳方式是什么?
有没有一个功能的Swing或SWT包装的例子? 还是与JavaFX声明性GUI描述的一些整合,可以使用某种宏观方法轻松包装为s表达式?
任何教程?
我会虚心地建议跷跷板。
这里是一个基于REPL的教程,它假定没有Java或Swing知识。
跷跷板很像@tomjen的建议。 这里是“你好,世界”:
(use 'seesaw.core)
(-> (frame :title "Hello"
:content "Hello, Seesaw"
:on-close :exit)
pack!
show!)
这里是@Abhijith和@dsm的例子,翻译得非常字面:
(ns seesaw-test.core
(:use seesaw.core))
(defn handler
[event]
(alert event
(str "<html>Hello from <b>Clojure</b>. Button "
(.getActionCommand event) " clicked.")))
(-> (frame :title "Hello Swing" :on-close :exit
:content (button :text "Click Me" :listen [:action handler]))
pack!
show!)
Stuart Sierra最近发布了一系列关于用clojure(和swing)进行GUI开发的博客文章。 从这里开始:http://stuartsierra.com/2010/01/02/first-steps-with-clojure-swing
如果你想做GUI编程,我会指向温度转换器或蚂蚁殖民地。
Swing中的许多事情都是通过子分类完成的,特别是在创建自定义组件的情况下。 为此,有两个基本的函数/宏:代理和gen-class。
现在我明白你要以更多的Lispy方式前进。 我不认为有这样的事情。 我强烈建议不要尝试构建一个CLIM宏伟的GUI构建框架,但要做更多的Lispy:开始编写Swing应用程序,并用宏抽象出您的常见模式。 当你这样做时,你最终可能会用一种语言来编写你的图形用户界面,或者可能是一些非常普通的东西,这些东西可以被共享和增长。
在Clojure中编写图形用户界面时,丢失的一件事就是使用像Matisse这样的工具。 这可能是一个强有力的指向,用Java编写一些部分(GUI)和Clojure中的一些部分(逻辑)。 在逻辑中,这实际上是有意义的,你可以使用宏为你的逻辑构建一种语言,我认为在GUI中获得的东西还有更多。 显然,这取决于你的应用程序。
链接地址: http://www.djcxy.com/p/66867.html上一篇: What is the best way to do GUIs in Clojure?
下一篇: UITableViewDelegate and UITableViewDatasource confusion