JavaFx vs TornadoFx

时间:2018-01-04 05:04:33

标签: javafx tornadofx

我已开始致力于javafx。我想知道javafxTornadofx之间的区别。它们如何相互关联,彼此不同。

何时使用什么。

是否有javafxTornadofx更有用/建议使用的情况,反之亦然?

2 个答案:

答案 0 :(得分:8)

JavaFX更像是一个工具包(它具有构建GUI所需的所有基础)。它是一个功能完整的“工具包”,但它非常冗长,语法包含样板代码,这使得它很难维护。这就是TornadoFX的用武之地.TornadoFX就像一个基于该工具包的框架,它取消了所有样板代码,并使GUI构建声明,使其类似于HTML。

此外,即使TornadoFX可以在Java中使用,它也可以在Kotlin中使用(JavaFX也可以在Kotlin中使用,没有任何问题)。

TornadoFX简化并简化了GUI构建过程(使代码更清晰),但它“使用JavaFX”,因此可与JavaFX互操作。 例如,您可以在纯JavaFX代码中创建一个小部件,然后在TornadoFX中使用它,或者,例如,在TornadoFX中创建一个完整的窗口,然后从JavaFX中调用它。

这里的主要内容是TornadoFX不以任何方式限制JavaFX,你仍然可以从TornadoFX获得低级JavaFX。

除了GUI构建器之外,TornadoFX还包含有用的工具,如ViewModel类,它们分离GUI和逻辑(可用,但不是强制性的),以及一些其他有用的工具。

就个人而言,我总是使用TornadoFX,因为它使代码非常简洁且易于维护,同时,JavaFX的任何功能都不会丢失。

答案 1 :(得分:6)

目前接受的答案没有回答这部分

  

是否有任何javafx比使用更有用/建议使用的情况   Tornadofx

接受的答案是,对于标准的简单GUI,Kotlin与TornadoFX结合使用可以让您快速上手。这是真的。 直接JavaFX更好的一些例子:

  • JavaFX 3D subscenes
  • 与Swing进行互操作(我不知道你怎么会在这里使用Kotlin,但也许TornadoFX本身可以使用)
  • 基于画布的渲染
  • 高性能自定义事件处理

显然,这些场景并不代表大多数GUI应用程序,而是高性能和自定义渲染类型应用程序。所以一般来说,如果你是从头开始......即......你还不熟悉JavaFX,那么使用TornadoFX是一个很好的起点。

关于选择使用Kotlin作为起点的说明也很有趣。我个人认为它不仅仅是在JavaFX中写作有利,但我对JavaFX有很多经验,所以我可能会有偏见。另外,当你没有被迫这样做的时候......在没有smartJ的情况下开发kotlin是痛苦的,这也是该公司制定Kotlin的计划的一部分。

所有这一切:

  

,语法包含样板代码

这在某种程度上是正确的,并且Tornado通过强制您通过标准化的API集来确实减少了样板。 但...

  

这使得难以维护。

我不同意。它不是很难"保持。您复制/粘贴一次的代码,可能永远不会再次更改。我们不应该如此快速地匆匆地模仿和封装我们的代码库中的每个最后一个ASCII字符,其名称为"可维护性"同时将鱼雷射入我们表演的一边。