JavaFx与TornadoFx
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFx与TornadoFx相关的知识,希望对你有一定的参考价值。
我已经开始研究javafx
了。我想知道javafx
和Tornadofx
之间的区别。它们如何相互关联,彼此不同。
还在何时使用什么。
是否有任何情况下javafx
比Tornadofx
更有用/建议使用,反之亦然?
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的主要内容,如果未能解决你的问题,请参考以下文章