中国领先的IT技术网站
|
|

JRuby+Swing的开发人员选择

本文介绍JRuby+Swing的开发人员选择。JRuby 是用于 Java 平台的一个 Ruby 实现。它使您可以通过 JVM 执行 Ruby 代码。

作者:James Britt来源:IBMDW|2009-07-20 16:11

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


JRuby 是用于 Java 平台的一个 Ruby 实现。它使您可以通过 JVM 执行 Ruby 代码。在 JRuby 下运行的 Ruby 代码还可以装载和使用 Java 库,包括 Swing。所以JRuby+Swing的组合,也成为了开发人员的选择之一。

Java 平台的某些方面使得 JRuby 成为一个好的选择:

◆它比较稳定,并且经过良好的测试

◆它有较强的社区和供应商支持

◆它有很多良好的文档

◆有很好的 IDE 和 UI 布局工具可供选择

◆可免费使用(不管是在成本方面还是许可方面)

◆用户机器上可能已经安装了 Java 运行时

如果用JRuby 编写应用程序,并使用 Swing 实现 UI,则只需确保用户有最新版本的 Java 运行时,并在打包应用程序时包括 JRuby JAR 文件。由于已经有了用于 JRuby 应用程序打包的 Ruby 工具,所以这些不成问题。

JRuby+Swing 的开发人员选项

对于从 JRuby 中使用 Swing,有很多选项:

原始的、手工编写的对 Swing 对象的内联调用:在最简单的情况下,可以像引用任何其他 JRuby 对象那样引用 Swing 对象:

  1. panel = Java::javax::swing::JFrame.new("JRuby panel")  
  2. panel.show   

“Builder” 和领域特定语言(DSL)风格的库:全部以手工代码构造面板和窗体,然后添加组件,这样可以提高开发速度。有一些库使 Swing 交互更具 Ruby 风格。例如:

Cheri::Swing 使用 JRuby 块语法生成 Swing 代码。

另一个库 Profligacy 则围绕原始的 Swing 调用提供了一个 Ruby 包装器,它可以帮助您用更少的原始 Java 代码编写更多的 Swing 代码。为了恰当地使用 Swing 组件,仍然需要熟悉 Swing API 文档。

这些方法都假设面板、窗体和布局是用手工代码创建的。虽然用纯 Swing 代码做这些事情已经是一个进步,但是仍然无法处理复杂的用户界面。

“我们不关心 Java 类来自何处” 方法:第三种方法假设用于 Swing 对象的已编译的 Java 类已经存在,并试图使用 JRuby 代码简化 Swing 对象的创建。

最后是 Monkeybars 库采用的方法(请参阅 参考资料)。现在已经有很多非常好的、免费的图形化 Swing UI 布局编辑器。和之前提到的 GUI 工具包(例如 Fox 和 GTK)的使用一样,对于不常见的对话框,不需要 UI 编辑器。但是,除此之外,这类工具是不可替代的,对于一个高级的桌面应用程序,无视这些工具而手工编写 UI 并无益处。

JRuby+Swing:Monkeybars

Monkeybars 是一个开源 Ruby 库,它使用一种模型、视图、控制器(MVC)设计模式将已有的 Java Swing 类(即定义 Swing UI 的已编译 Java 类)与 Ruby 代码连接起来。MVC 的目的在于将视图逻辑和 UI 组件与应用程序逻辑相分离。

由于使用 Java 语言和 Swing 库,Monkeybars 建立在成熟、健壮的技术之上。与目前用于 JRuby 的其他 Swing 库不同,它非常适合于构造大型的、复杂的、多面板的应用程序。您将看到,创建 Monkeybars 应用程序需要承担一定的开销,所以对于简单的窗体来说它可能不是最好的选择。但是,对于有以下需求的 JRuby 桌面应用程序来说,它是一个合理的选择:

◆可靠的跨平台部署(确保用户安装了最新的 JVM)

◆有大量具有任意复杂度的 UI 部件可供选择

◆复杂的 UI 窗体和面板构造和交互

和 Profligacy 一样,Monkeybars 不隐藏 Swing API。但是,由于它使用编译过的 UI 类,因此可以充分利用任何工具或应用程序来生成真正的布局。取决于应用程序的复杂性,几乎不可避免的是,在编写 Ruby 代码的过程中,某些时候需要参考 Swing 组件 API 文档和代码示例才能知道怎么做(但是由于 JRuby 与 Java 库的良好集成,很容易将那样的 Swing 代码包装在一个 Ruby API 中,以便于重用)。使用 Monkeybars 构建的程序可能有不同程度的复杂性,但是可以遵循一些基本的模式来使代码易于维护。

【编辑推荐】

  1. 如何监控JRuby脚本的执行
  2. JRuby的安装与配置介绍
  3. JRuby+Netbeans开发攻略之用jruby调用jfreechart
  4. 学习在NetBeans环境下进行JRuby开发
  5. 使用JRuby开发Web Service全攻略
【责任编辑:杨赛 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

点石成金:访客至上的网页设计秘笈(原书第2版)

有些网站看起来很清爽; 有些网站看起来很杂乱; 有些网站能让你轻松地找到资料; 有些网站让你犹如置身迷宫…… ...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言