快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
当的成本。如 果打算发布应用程序,那么需要检查工具包许可。另外,还必须确保用户已经有所需的环境,或者很容易 将所有需要的库和部件放到一个独立的应用程序或一个安装包中。

但是,对于复杂的应用程序, 需求就变得严格起来。对于任何超越了简单窗体的应用程序,几乎肯定需要有一个窗体设计工具。另外还 需要一套丰富的可用部件;不过,可以重用一个已有的数据采集器或文件浏览器组件,而不必自己编写它 们。

每个不同的基于 C 的 Ruby GUI 工具包都有其擅长的一面,但是它们当中没有明显的胜者。 对于常规的 Ruby 跨平台桌面开发,并没有显而易见的选择。在不同程度上,它们都有安装、文档化、设 计工具、打包和部署方面的问题。值得注意的是,逐一对比特性,它们当中没有哪个能超过非 C 语言编 写的工具包。

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

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

利用 Java 技术

JRuby 是用于 Java 平台的一个 Ruby 实现(请参阅 参考资料)。它使您可 以通过 JVM 执行 Ruby 代码。在 JRuby 下运行的 Ruby 代码还可以装载和使用 Java 库,包括 Swing。

对于 JRuby + Swing 的一些争议

从好的方面看,Swing 组件的数量非常多;从坏的方面 看,它们是 Swing 对象;虽然可以将它们装载到 Ruby 代码中,但是必须知道它们五花八门的 API 和怪 异的语法。虽然 Swing 有丰富的文档和示例,但是除非编写围绕这些组件的 Ruby 包装器,否则必须亲 自处理一些原始的 Swing 代码。

第二个常见的反对理由是,Swing 看上去可能不如某些工具包, 例如 Qt 那么漂亮或自然。但是,这不是一成不变的,Swing 现在的外观已经相当不错了。

在 Java 平台与基于 C 的工具之间进行权衡时,必须做出一些选择,决定什么才是最重要的。例如,Swing 可以完全免费使用,而 Qt 对于商业和开源应用程序则有不同的成本和限制。另一方面,Qt 组件的感观 对于您的程序来说可能更好一些。

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

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

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

它有很多良好的文档

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

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

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

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

(J)Ruby + Swing 的开发 人员选项

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

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

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

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

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

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

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

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

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

“我们不关心 Java 类来自何处” 方法:第三种方法假设用于 Swing 对象 的已编译的 Java 类已

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号