有没有人试过混合JavaFX
和JRuby
?我已经构建了一个带有 Swing GUI(100% JRuby)的 JRuby 桌面应用程序,并且我正在考虑用 JavaFX 替换 GUI 以获得更流畅的感觉。
为了适应我当前的应用程序,我想实现一个 MVC 模式,其中 View 是 JavaFX,Controller 和 Model 是 Ruby。
现在有一个来自 JRuby 项目的JRubyFX gem 用于处理 JavaFX 2.0。它支持代码中的 JavaFX 和 FXML。大多数事情应该可以工作,但它有一些问题记录在自述文件中。
JavaFX 2.0 出来后会容易得多。
从 java 7u6 开始,javafx 现在是 java 语言的一部分,默认情况下可用于 Linux、Mac 和 Windows。您可以在 jvm 上使用任何语言对其进行编程,因此现在您应该能够非常轻松地编写应用程序。
JavaFX 脚本已被删除,但 JavaFX 技术比以往任何时候都更大更好。现在一切都直接包含在 API 中,因此使用 Groovy 或 JRuby 为使用 JavaFX 提供了一个很好的脚本框架。
快乐编码!
至于 JavaFX Script 和 J Ruby 之间的概念差异,有很多。我将从 JRuby 开始。JRuby 本身实际上并不是一种语言。相反,它是 Ruby 编程语言的 Java实现。Ruby 的原始运行时解释器是用 C 编写的(也许有些是用 C++ 编写的,我不确定)。JRuby 项目是由一些想要使用 Java 编写的 Ruby 运行时实现的人发起的。
为什么?嗯,有一些有趣的优势。首先,他们能够非常容易地从 Ruby 应用程序调用 Java 代码。其次,这意味着 Ruby 程序最终由 Java 虚拟机 (JVM) 运行,因此可以从过去十年在 JVM 上完成的所有优化工作中受益。今天,JRuby 仅用作解释器,但从本月早些时候一位项目负责人那里听到的消息,他们非常接近能够将 Ruby 程序直接编译成 JVM 字节码,这将提供另一个性能提升。
最后,JRuby 对于用 Ruby 编写但想要利用其中任何一个的项目非常有趣:现有的 Java 库或现有的 Java 运行时(JVM,甚至像 GlassFish 和 Tomcat 这样的应用程序/Web 服务器)或两者兼而有之。
另一方面,JavaFX 是直接注入的脚本语言,用于创建图形类的东西。也非常实用。因此,当您遵循设计模式时,在这种情况下使用 MVC,如果您遵循规则,它应该没问题。但是相信可能会开始使用 FX 和 JRuby 的情况很少。