从JavaFX 1.3迁移到JavaFX 2.0
生活随笔
收集整理的這篇文章主要介紹了
从JavaFX 1.3迁移到JavaFX 2.0
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
幾天前,我完成了將Modellus的源代碼從JavaFX 1.3腳本遷移到JavaFX 2.0 Java語言的過程。 因此,我認為寫關于我在此過程中學到的知識會很好。 CustomNode類不再存在。 擴展組或區(qū)域以創(chuàng)建“自定義節(jié)點”。 沒有更多的塊鼠標。 在javafx 2.0中,鼠標事件僅由最頂部的節(jié)點接收。 Node上還有一個新方法:setMouseTransparent(boolean)。 將mouseTransparent設置為true的節(jié)點上的鼠標事件將被下面的最高節(jié)點忽略并捕獲。 使用屬性綁定值。 Javafx 2.0具有一組可以用來將值彼此綁定的類。 對于每種基本類型,都有一個類– SimpleBooleanProperty,SimpleDoubleProperty等,對于引用類型,您可以使用對象屬性實例,例如,如果您要綁定顏色,則可以使用SimpleObjectProperty <Color>。 并非API中的所有變量都是“可綁定的”。 在Javafx 1.3腳本中,您可以綁定到API的任何變量。 在javafx 2.0 Java語言中,這意味著API中的所有變量都必須作為屬性可用。 但是事實并非如此,例如Bounds,LinearGradient,Stop是不具有屬性的類的示例,因此您不能直接綁定到其字段。 在這種情況下,您需要使用其他方法,例如底層綁定 。 例如,假設您想將變量綁定到節(jié)點的布局邊界的寬度。 由于Bounds的字段寬度不能作為屬性使用,因此您必須執(zhí)行以下操作: 使用javafx腳本initiliazer塊時,現(xiàn)在可以使用javafx 構建器 。 但是,在javafx腳本中,您可以在初始化程序塊中使用綁定,而在Java上,不能使用構建器來進行綁定。 只有在JavaFX 3.0(Lombard)中,您才能做到這一點: http : //javafx-jira.kenai.com/browse/RT-13680 。 因此,每當在javafx腳本初始化程序塊上使用綁定時,就不能在java javafx 2.0中使用構建器。 在Javafx 2.0 Java上不再對序列提供語言級別的支持。 無論您在何處使用序列,現(xiàn)在都將使用ObservableLists。 要創(chuàng)建ObservableLists,可以使用FXColections創(chuàng)建器方法,在那里您會找到各種各樣的方法來創(chuàng)建ObservableLists,甚至是空的方法。 API上存在的序列已轉換為ObservableLists。 例如,如果要在Group上插入節(jié)點,則需要獲取其子節(jié)點ObservableList,然后調用方法add。 像這樣:.getChildren()。add(Node) 沒有更多的功能類型。 由于僅在java8上支持Closures,因此Oracle團隊依賴于使用SAM類型。 那是一個類,只有一個您必須要重寫的抽象方法(單一抽象方法)。 您可以使用與Oracle相同的策略,并在使用函數(shù)對象的任何地方編寫SAM類型。 沒有更多的觸發(fā)器。 用變更偵聽器替換觸發(fā)器。 您可以將更改偵聽器分配給與在Javafx腳本上分配觸發(fā)器相同的屬性。 子類上沒有更多的變量覆蓋。 對于這些,您將無法在Java上替代它,最好的事情是將值重新分配給子類上的變量。 但這并不相同,因為覆蓋變量,在超類的初始化程序塊之前被賦值。
我想指出,如果您想繼續(xù)在JavaFX 2.0中使用JavaFX腳本,則可以使用Visage: http : //code.google.com/p/visage/
在Javafx腳本中:
float nameLabelXPosition = bind - nameLabel.layoutBounds.width / 2;在Javafx2.0 Java語言中:
nameLabelXPosition.bind(new DoubleBinding() {{super.bind(nameLabel.layoutBoundsProperty());}@Overrideprotected double computeValue() {return nameLabel.getLayoutBounds().getWidth() / 2;}});有關此主題的更多信息,請參見結帳:
http://weblogs.java.net/blog/opinali/archive/2011/05/28/javafx-20-beta-first-impressions
如果您對此主題沒有其他更有價值的提示,請在評論中添加它們,然后將它們插入帖子中。
參考: Pixel Duke博客上的JCG合作伙伴 Pedro Duque Vieira 從javafx 1.3遷移到javafx 2.0 。
相關文章 :
- JavaFX 2.0 beta示例應用程序和思考
- JavaOne正在重建動力
- 有時在Java中,一個布局管理器是不夠的
- Xuggler開發(fā)教程
翻譯自: https://www.javacodegeeks.com/2011/12/migrating-from-javafx-13-to-javafx-20.html
總結
以上是生活随笔為你收集整理的从JavaFX 1.3迁移到JavaFX 2.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芝麻剑鱼国家二级保护动物(简单介绍一下芝
- 下一篇: 忽略Java中的自签名证书