3

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

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

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

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

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

4

3 回答 3

7

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

于 2008-09-18T20:24:14.943 回答
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)))

还有一些简洁的示例代码弹出,用于在 Clojure 中包装 JavaFX 2.0 - 这更像是一个声明性 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!"))))))
于 2012-02-15T14:36:05.100 回答
0

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

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

于 2010-09-02T11:48:06.870 回答