我想要一个用于 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/