JavaFx与TornadoFx

JavaFx与TornadoFx,javafx,tornadofx,Javafx,Tornadofx,我已经开始使用javafx。我想知道javafx和tornadfx之间的区别。它们是如何相互关联和不同的 还有什么时候用什么 P>>代码> > JavaFX比 TrnADOFX 更有用/建议使用吗?反之亦然?JavaFX更像是一个工具包(它拥有构建GUI所需的所有基础)。这是一个功能完整的“工具箱”,但它非常冗长,并且语法包含样板代码,这使得它很难维护。这就是TornadFX的用武之地。TornadFX类似于基于该工具包的框架,它消除了所有样板代码,并使GUI构建具有声明性,甚至类似于HTML

我已经开始使用
javafx
。我想知道
javafx
tornadfx
之间的区别。它们是如何相互关联和不同的

还有什么时候用什么


<> P>>代码> > JavaFX比<代码> TrnADOFX 更有用/建议使用吗?反之亦然?

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

此外,即使TornadFX可以从Java中使用,也应该从Kotlin中使用(也可以从Kotlin中使用JavaFX,没有任何问题)

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

这里的主要收获是,TornadFX没有以任何方式限制JavaFX,您仍然可以从TornadFX获得低级JavaFX内容

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


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

当前接受的答案未回答此部分

是否有任何情况下javafx比 龙卷风

公认答案的要点是,对于标准的简单GUI,Kotlin与TornadoFX的结合将使您快速运行。这是真的。 下面是一些直JavaFX更好的示例:

  • JavaFX3D子场景
  • 与Swing的互操作(我不确定您在这里会如何使用Kotlin,但TornadFX本身可能会起作用)
  • 基于画布的渲染
  • 高性能定制事件处理
显然,这些场景并不代表大多数GUI应用程序,而是高性能和自定义渲染类型的应用程序。所以一般来说,如果你是从零开始。。。即。。。您还不太熟悉JavaFX,那么使用TornadoFX是一个很好的起点

在这一点上,选择Kotlin作为起点也很有趣。我个人并不觉得它比用JavaFX编写更有优势,但是我有很多JavaFX的经验,所以我可能会有偏见。虽然你不是被迫这么做。。。在没有intelliJ的情况下在kotlin发展是一件痛苦的事情,intelliJ是该公司计划首先生产kotlin的一部分

所有这些都表明:

语法包含样板代码

这在某种程度上是正确的,Tornado确实通过强制您使用一组标准化的API来减少样板文件。 但是

这使得它很难维护


我不同意。维护并不“难”。这是您复制/粘贴过一次的代码,可能再也不会更改。我们不应该匆忙地以“可维护性”的名义掩盖和封装代码库中的每一个ASCII字符,同时对我们的性能造成负面影响

你正在使用KotlinNo,使用java。但我想知道的是,我们可以互换使用它们的功能,这很有帮助。非常感谢。感谢javafx更有用的有用案例。