【问题标题】:UI design alternatives with Groovy/JRuby/Jython or other JVM languages?使用 Groovy/JRuby/Jython 或其他 JVM 语言的 UI 设计替代方案?
【发布时间】:2010-09-10 21:30:17
【问题描述】:

对于 Java 生态系统中的开发人员来说,在 UI 设计方面有很多选择。最著名的是:

  • Swing(与 Netbeans 及其 GUI 构建器一起使用时首选)
  • Eclipse 的 SWT(主要用于 Eclipse 插件)

现在,是否有针对 JRuby / Groovy / Jython 或其他“动态”JVM 语言的框架或设计替代方案?

一些 UI 框架是 Swing 或 SWT 之上的层,例如,框架可以读取 XML 中的屏幕描述并实例化相应的 Swing 组件。

如果您知道这样的框架,但它以 JVM“动态”语言为目标,我也希望在答案中看到它们。

【问题讨论】:

    标签: java user-interface groovy jruby jvm-languages


    【解决方案1】:

    不完全是 UI 设计,但你可以试试Griffon

    【讨论】:

      【解决方案2】:

      Clojure 有一些看起来很重要的 GUI 库/框架:

      seesaw 将 Swing 包装在一个非常简洁的 DSL 中,它当然可以用于声明式地创建 GUI 界面:

      (defn -main [& args]
        (invoke-later 
          (-> (frame :title "Hello", 
                 :content "Hello, Seesaw",
                 :on-close :exit)
           pack!
           show!)))
      

      Incanter 提供了相当多的图形和可视化功能(包括 JFreeChart 等)。不是一个通用的 GUI 库,但如果您专注于统计数据,则非常有用:

      ;; show a histogram of 1000 samples from a normal distribution
      (view (histogram (sample-normal 1000)))
      

      还有一些针对wrapping JavaFX 2.0 in Clojure 的简洁示例代码弹出 - 这更像是一个声明性 DSL:

      (defn -start [app stage]
         (eval
           (fx Stage :visible true :width 300 :height 200 :title "hello world"
               :scene (fx Scene
                        (fx BorderPane :left (fx Text "hello")
                            :right (fx Text "Right")
                            :top (fx Text "top")
                            :bottom (fx Text "Bottom")
                            :center (fx Text "In the middle!"))))))
      

      【讨论】:

        【解决方案3】:

        我认为 Jruby 最成熟的两个框架是 Monkeybars (http://monkeybars.rubyforge.org/) 和 Limelight (http://limelight.8thlight.com/)。

        Monkeybars 是一个完整的 ruby​​esque MVC 实现,可以与 Swing GUI 构建器结合使用,而 Limelight 则像 Shoes 一样追求最小代码/最大效果比率。

        【讨论】:

          猜你喜欢
          • 2011-07-24
          • 1970-01-01
          • 1970-01-01
          • 2010-11-22
          • 1970-01-01
          • 2014-01-13
          • 1970-01-01
          • 2014-07-08
          • 2012-09-08
          相关资源
          最近更新 更多