JavaFx与TornadoFx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFx与TornadoFx相关的知识,希望对你有一定的参考价值。

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

还在何时使用什么。

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

答案

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

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

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

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

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

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

另一答案

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

是否存在javafx比Tornadofx更有用/建议使用的情况

接受的答案是,对于标准的简单GUI,Kotlin与TornadoFX相结合将使您快速运行。这是真的。直接JavaFX更好的一些例子:

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

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

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

所有这些说:

并且语法包含样板代码

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

这使得它很难维护。

我不同意。维护并不“难”。它是您复制/粘贴一次的代码,可能永远不会再次更改。在将“鱼雷”射入我们演出的一侧时,我们不应该急于以“可维护性”的名义模糊和封装我们代码库中的每个最后一个ASCII字符。

以上是关于JavaFx与TornadoFx的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 编译在 Linux 上找不到 tornadofx

JavaFx 圆形头像实现

JavaFx 关键字高亮文本实现

JavaFX: 多语言适配

JavaFx 生成二维码工具类封装

JavaFX窗口拖动