swing - 我应该将 Java 用于为 clojure 应用程序设计的自定义 Swing 组件吗?

标签 swing clojure seesaw

我想要一个用于 clojure/seesaw 应用程序的简单时间线组件(如在视频编辑软件中),我想知道直接用 clojure 和 seesaw 实现它是否是一种好方法,或者我是否应该用 java 编写它并制作我的 clojure 包装器周围。

或更笼统地说:函数式编程语言是否最适合编写 UI 小部件?我无法想象在没有涉及很多状态的情况下这样做。 OO 最初不是为 UI 开发而发明的吗?

最佳答案

你可以去任何一种方式。在 Overtone 上,我们构建了许多自定义图形组件 directly in Clojure与跷跷板。很多时候,一个原子和(seesaw.core/canvas)对于这种事情来说已经足够了。

根据您的喜好,在 Clojure 中执行此操作的一个原因是您可以将 Seesaw 的协议(protocol)(选择、绑定(bind)等)扩展到新的小部件,以便它与 Seesaw 无缝协作。另一个考虑因素是您的小部件是否需要使用来自应用程序其他部分的 Clojure 数据。这从 Clojure 将比 Java 更干净。

也就是说,如果您对 Swing/Java 感到满意,您可以在那里进行操作,并且 Seesaw 将非常乐意使用 Java 构建的自定义小部件。祝你好运!

关于swing - 我应该将 Java 用于为 clojure 应用程序设计的自定义 Swing 组件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838394/

相关文章:

java - 如何在 Java 中的 JTextField 中仅允许 float

java - 在表单上设置相同大小的按钮

java - MouseListener 的问题

clojure - ClassCastException java.lang.Long 不能转换为 clojure.lang.IFn

java - 我如何找出我需要从 Java 库中导入的 namespace ?

clojure - 如何更新跷跷板树模型?

java - 等待 clojure 中的按键

java - 没有 print 语句的代码不执行

java - 你能混合使用 JVM 语言吗?即 : Groovy & Clojure

swing - 使用跷跷板启用全屏?