簡體   English   中英

JavaFx與TornadoFx

[英]JavaFx vs 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字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM