关于Java:使用Groovy / JRuby / Jython或其他JVM语言的UI设计替代方案?

关于Java:使用Groovy / JRuby / Jython或其他JVM语言的UI设计替代方案?

UI design alternatives with Groovy/JRuby/Jython or other JVM languages?

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

  • Swing(与Netbeans及其GUI构建器一起使用时首选)
  • Eclipse的SWT(最受Eclipse插件青睐)

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

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

如果您知道这样的框架但针对JVM"动态"语言,那么我也希望在答案中也能看到它们。


不完全是UI设计,但是您可以尝试Griffon。


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

跷跷板将Swing包装在非常简洁的DSL中,可以肯定地用于声明式创建GUI接口:

1
2
3
4
5
6
7
(defn -main [& args]
  (invoke-later
    (-> (frame :title"Hello",
           :content"Hello, Seesaw",
           :on-close :exit)
     pack!
     show!)))

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

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

还有一些简洁的示例代码可用于将JavaFX 2.0包装在Clojure中-这又更像是声明性DSL:

1
2
3
4
5
6
7
8
9
(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!"))))))

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

Monkeybars是完整的rubyesque MVC实现,可以与Swing GUI构建器结合使用,而Limelight像Shoes一样,具有最小的代码/最大的效果比。


推荐阅读

    linux启动r语言命令?

    linux启动r语言命令?,数据,环境,官网,服务,系统,时间,电脑,统一,软件,语言,li

    linux常用命令c语言?

    linux常用命令c语言?,系统,工作,信息,管理,基础,命令,地址,目录,简介,时间,li

    linux命令行设置语言?

    linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,l

    linux使用命令改语言?

    linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚

    linux命令解决方案?

    linux命令解决方案?,系统,管理,数据,电子,工作,电脑,软件,情况,不了,档案,lin

    c语言写linux命令?

    c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何

    linux汇编语言命令?

    linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇

    linux汇编语言命令?

    linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇

    linux命令是什么语言?

    linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,

    linux改语言命令行?

    linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,lin

    linux命令行c语言?

    linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linu

    c语言在linux命令?

    c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linu

    linux编写c语言命令?

    linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在

    linux改变语言命令?

    linux改变语言命令?,系统,管理,网上,官方网站,情况,服务,中文,语言,命令,终

    c语言编译linux命令?

    c语言编译linux命令?,代码,工具,环境,系统,基础,保险,百度,语言,源程序,文件

    linux数据库选择命令?

    linux数据库选择命令?,系统,地址,工作,软件,管理,信息,工具,基础,命令,服务,

    linux常用命令语言?

    linux常用命令语言?,工作,地址,系统,信息,命令,目录,标准,管理,工具,服务,lin

    r语言命令行写linux?

    r语言命令行写linux?,环境,数据,系统,工具,简介,官网,语言,报告,软件,发展,如

    linux语言查找命令行?

    linux语言查找命令行?,系统,工作,位置,标准,地址,信息,命令,管理,时间,文件,