JRuby+Swing的开发人员选择

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

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全攻略
责任编辑:yangsai 来源: IBMDW
相关推荐

2009-07-28 14:54:09

JRubySun

2019-10-17 09:00:00

GoRust编程语言

2020-06-22 07:18:21

Java语言开发

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企业开发人员提供商

2009-12-11 14:50:14

Visual Basi

2009-11-23 20:07:51

ibmdw开发

2021-02-19 09:33:01

kubernetesJAVA服务

2020-08-14 10:54:56

NodejsGolang开发

2010-08-16 09:21:35

Windows Pho

2012-12-14 08:55:45

开发人员产品经理

2023-02-17 15:01:15

2021-12-10 23:48:19

Java开发技术

2021-02-16 16:44:40

RustJavaScript开发

2022-01-06 16:15:58

自测测试开发人员

2009-05-31 08:31:07

GoogleWaveTechCrunch

2011-09-05 14:21:29

webOS

2013-04-15 10:00:09

程序员

2023-08-14 15:23:37

点赞
收藏

51CTO技术栈公众号