1
116
我谦虚地建议 Seesaw . Here's a REPL-based tutorial 假定没有Java或Swing知识。 Seesaw和@Tomjen的建议非常相似。这是“你好,世界”:
下面是@abhijith和@dsm的例子,翻译得相当准确:
|
2
32
Stuart Sierra最近发表了一系列关于与Clojure(和Swing)开发GUI的博客文章。从这里开始: http://stuartsierra.com/2010/01/02/first-steps-with-clojure-swing |
3
16
如果你想做图形用户界面编程,我会指 Temperature Converter 或 the ants colony . Swing中的许多工作都是通过子类完成的,特别是在创建自定义组件时。为此,有两个基本功能/宏: proxy 和 gen-class . 现在我明白了,你要用更轻率的方式去哪里。我想现在还没有这样的东西。我强烈建议不要尝试构建一个宏伟的GUI构建框架A-LA。 CLIM 但是要做一些更简单的事情:开始编写Swing应用程序并用宏抽象出常见的模式。当你这样做的时候,你可能最终会得到一种语言来编写你的gui,或者一些非常通用的东西,它们可以被共享和增长。 在Clojure中编写guis时,有一件事是使用matisse之类的工具。这可以很好地指向Java(GUI)中的某些部分和Culjule(逻辑)中的某些部分。这实际上是有意义的,因为在逻辑中,你可以使用宏为你的逻辑类型构建一种语言,我认为这比使用图形用户界面有更多的好处。显然,这取决于您的应用程序。 |
4
14
由此 page :
当然,值得一看 interoperability Clojure网站的一部分。 |
5
13
现在还没有人建议,所以我会:浏览器作为用户界面平台。您可以在Clojure中编写应用程序,包括一个HTTP服务器,然后使用从HTML到 hiccup ,clojurescript和您需要的数十亿JS libaries中的任何一个。如果你想要一致的浏览器行为和“桌面应用程序外观”你可以 bundle chrome with your app . 这似乎是 Light Table 是分布式的。 |
6
8
Clojure Contrib中有一个miglayout包装器。你也可以看看 http://gist.github.com/261140 . 在学习Swing/MigLayout时,我基本上是在编写任何代码。 DSM的示例使用contrib.swing-utils以一种轻率的方式重新编写
|
7
6
已经有 talk on the mailing list 关于几个细胞(a la Kenny Tilton's Cells )实施。这是一种非常好的GUI编程方法。 |
8
5
我宁愿选择Clojurefx,这有点过早,但它确实有效,而且节省了你的时间。 我用Seesaw启动了我的GUI,然后在Clojurefx中尝试了另一个组件。 我已经完成了这两项工作,我确信我将把跷跷板重构为Clojurefx。 毕竟,JavaFX是前进的道路。 感觉比跷跷板轻。或者至少,写下它…… 绑定工作,侦听器工作,大部分组件工作,否则,只需使用其中一个宏为特定情况和完成的工作创建一个构造函数。或者,如果你发现它很难,写一些方法在Java和寻求帮助,以改善Culjulfx。 写Clojurefx的人现在很忙,但是你可以分出这个项目来做一些修改。 |
9
4
这是另一个非常基本的回转包装示例。
|
10
3
我问自己同样的问题:用Swing在Clojure中编写一个GUI,然后想到了这个库: https://github.com/jonasseglare/signe 它允许您将域模型表示为一个封装在原子中的Clojure数据结构。 请参见以下示例: https://github.com/jonasseglare/signe/blob/master/src/signe/examples.clj |
11
2
我一直在开发一个Java小程序,其中除了用Java编写的Applet代码之外,所有的东西都是用CuljJuy编写的。Applet从Java的钩子中调用Cujjule代码的init、油漆等的回调,用于由applet模型定义的那些方法。因此,代码最终是99.999%的Culjure,并且你不必在大多数情况下考虑这个极小的Java块。 这种方法有一些缺点,我希望在Clojure Google Group上更详细地讨论。我认为Clojure开发人员应该包括构建应用程序的本地方法。目前,你可以从RePL中做任何你喜欢的GUI,但是如果你想要一个可交付的GUI应用程序,就需要编写一些Java来调用CuljuleCu码。而且,Java应用程序的体系结构似乎迫使你在Culjure的更习惯的最佳实践之外,需要使用可变的状态等等。 而且,我和Clojure的关系还不太好,可能是因为这是有可能的,我只是还没有找到正确的方法。 |
12
2
所以我没有在这份名单上看到来自蒂莫西·鲍德里奇(Halgiri)的FN外汇。这是一个Clojure库,在JavaFX上提供了一个功能抽象。 可以在Github上找到 https://github.com/halgari/fn-fx . 要使用,请确保您使用的是Java(1.8 90 +)的最新版本,并向Github RePo添加一个依赖项,将以下内容添加到您的项目中:
我已经试过了,它是开箱即用的。 |
13
1
Clojure和SWT是执行GUI的最佳方法。本质上,SWT是一种即插即用的软件开发方法。 |
14
1
我不认为有官方的,但我个人会利用我正在使用世界上最强大的语言之一的事实,想象一下完美的GUI代码会是什么样子:
你的想法会有所不同,但希望上面能给你一些想法。 |
15
1
我知道你在暗示经典的桌面解决方案,但是网络很适合Clojure。我已经写了一个完整的音频应用程序,所有的东西都连接在一起,这样如果你把音乐添加到音频文件夹中,它就会反映在网络用户界面中。只是说桌面应用程序不是唯一的方法:) |
16
1
我的首选Clojure UI环境使用 IO.js (Node for ES6) + Electron (Container) + Quiescent (ReactJS wrapper) . |
lightning_missile · 词法范围和共享对象 6 年前 |
Alexandru Popa · SBCL中奇怪的宏扩展错误 6 年前 |
Jacky · 编辑列表中的每个偶数索引元素 6 年前 |
HappyFace · lisp典型缩进约定背后的规则是什么? 6 年前 |
Jorge · 在公共Lisp中初始化计数器变量 6 年前 |
Rorschach · cl循环破坏性修改cons单元 6 年前 |