快速业务通道

使用JRuby和Swing进行跨平台开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

使用JRuby和Swing进行跨平台开发

时间:2011-11-29 IBM developerworks James Britt

使用 Monkeybars JRuby Swing 库快速开发桌面应用程序

使用 Ruby 除了可以构建 Web 和控制台应用程序外,还可以编写复杂的 GUI 桌面应用程序,这些桌 面应用程序可以不作修改地在多种平台上运行。得益于 JRuby,Ruby 的传统 C 实现的健壮替代品,Ruby GUI 工具包可以使用用于 Java 平台的 UI 工具。本文介绍一个用 JRuby 和 Swing 构建应用程序的库 Monkeybars,并讲解一个示例应用程序。

Ruby 目前被作为一种用于构建 Web 应用程序的编程语言而 著称,主要通过 Ruby on Rails 框架使用。但是,这种语言还可以用于开发图形化桌面应用程序。在本 文中,您将学习更多关于使用 Ruby 进行桌面应用程序开发的知识,并完成一个详细的示例,这个示例使 用 Monkeybars — 一个基于 Swing 和 JRuby 的开源库 — 创建一个 GUI 桌面应用程序。

面向桌面的 Ruby

标准的 Ruby 发行版包括用于 Tk 绑定的代码,Tk 是一组开源的、跨平 台部件集,用于创建图形化桌面应用程序。这可以带来很大的方便。但是,在从源代码安装 Ruby 时,应 确认同时还有 Tk 依赖关系,并确保编译设置包括 Tk。如果在 Windows® 上使用方便的 “一 键式(one-click)” 安装程序包安装 Ruby,那么仍然需要采取额外步骤使 Tk 工作,因为它不再 支持自动安装。

即使为 Ruby 设置了 Tk,它仍然有点沉闷。在某些目标平台上,它们看上去相当 丑陋。而且,创建复杂的接口令人生畏。Tk 最适合用于较小的 GUI 需求。

可用工具包

Tk 的这些弱点促使了其他面向 Ruby 的 GUI 工具包选项的开发(请参阅 参考资料 查看相关链接)。有些 值得注意的选择是:

FxRuby:FxRuby 是用于 Fox 的 Ruby 绑定,这是一个用 C 编写的 GUI 工 具包。它可用于使用 RubyGems 的安装。对于 Windows,有一个二进制 gem;用于其他平台的 gem 则需 要编译本地代码。

WxRuby: WxRuby 是用于跨平台 wxWidgets C++ GUI 工具包的一个绑定,通过 它可以创建拥有本地外观的桌面应用程序。它可用于使用 gem 的安装。

QtRuby:QtRuby 提供对 Qt 工具包(在 KDE 桌面系统中使用的工具包)的 Ruby 绑定。对于 Windows 安装,有一个 gem,但是 对于其他平台则只有源代码。

GTK-Ruby:GTK 是在 GNOME 中使用的 UI 工具包。要使之运行,需 要编译本地代码。

Shoes:Shoes 是最近出现的一个与 Ruby GUI 部件有关的工具包。与这份列表 中提到的其他工具包不同的是,它是专门为 Ruby 设计的。可以使用特定于平台的安装程序来安装它。

Swing:Swing?是的,正是这个与每个 Java 运行时环境捆绑的 GUI 库。如果您运行 JRuby,那 么可以使用 Swing。

除了其中一个外,所有这些都是用 C 或 C++ 编写的 GUI 或部件库,它们都 有相应的绑定,以允许在其他语言,例如 Ruby、Python 和 Perl 中调用它们。在几乎所有情况下,您都 要面对多种考虑,例如安装和发行。

使用JRuby和Swing进行跨平台开发(2)

时间:2011-11-29 IBM developerworks James Britt

如何选择 GUI 库

当然,选择使用哪个 GUI 工具集取 决于您的特定需要。需要考虑以下内容:

一套丰富的部件或组件

可靠的实现

在多 种平台上的可用性(主要是 Macintosh、Win32、KDE 和 GNOME)

托管平台上的本地感观

是否受到积极的维护

易于创建定制的部件

未受限的许可

可接受的成本

可用于加快开发的已有的框架和库

成熟的 IDE 和窗体布局工具

测试工具和框架

易于打包和部署

如果只需偶尔抛出消息框,或者请求用户进行某些简单的输入,那么前面 列出的所有工具包都适用。对于简单的需求,只需重点考虑平台可用性、适合的部件以及适

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号