在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