几天前,我完成了将Modellus的源代码从JavaFX 1.3脚本迁移到JavaFX 2.0 Java语言的过程。 因此,我认为写关于我在此过程中学到的知识会很好。

我想指出,如果您想继续在JavaFX 2.0中使用JavaFX脚本,则可以使用Visage: http : //code.google.com/p/visage/

  1. CustomNode类不再存在。 扩展组或区域以创建“自定义节点”。
  2. 没有更多的块鼠标。
    在javafx 2.0中,鼠标事件仅由最顶部的节点接收。
    Node上还有一个新方法:setMouseTransparent(boolean)。 将mouseTransparent设置为true的节点上的鼠标事件将被下面的最高节点忽略并捕获。
  3. 使用属性绑定值。
    Javafx 2.0具有一组可以用来将值彼此绑定的类。 对于每种基本类型,都有一个类– SimpleBooleanProperty,SimpleDoubleProperty等,对于引用类型,您可以使用对象属性实例,例如,如果您要绑定颜色,则可以使用SimpleObjectProperty <Color>。
  4. 并非API中的所有变量都是“可绑定的”。
    在Javafx 1.3脚本中,您可以绑定到API的任何变量。 在javafx 2.0 Java语言中,这意味着API中的所有变量都必须作为属性可用。 但是事实并非如此,例如Bounds,LinearGradient,Stop是不具有属性的类的示例,因此您不能直接绑定到其字段。 在这种情况下,您需要使用其他方法,例如底层绑定 。

    例如,假设您想将变量绑定到节点的布局边界的宽度。 由于Bounds的字段宽度不能作为属性使用,因此您必须执行以下操作:

    在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;}});

  5. 使用javafx脚本initiliazer块时,现在可以使用javafx 构建器 。
    但是,在javafx脚本中,您可以在初始化程序块中使用绑定,而在Java上,不能使用构建器来进行绑定。 只有在JavaFX 3.0(Lombard)中,您才能做到这一点: http : //javafx-jira.kenai.com/browse/RT-13680 。 因此,每当在javafx脚本初始化程序块上使用绑定时,就不能在java javafx 2.0中使用构建器。
  6. 在Javafx 2.0 Java上不再对序列提供语言级别的支持。
    无论您在何处使用序列,现在都将使用ObservableLists。 要创建ObservableLists,可以使用FXColections创建器方法,在那里您会找到各种各样的方法来创建ObservableLists,甚至是空的方法。
    API上存在的序列已转换为ObservableLists。 例如,如果要在Group上插入节点,则需要获取其子节点ObservableList,然后调用方法add。 像这样:.getChildren()。add(Node)
  7. 没有更多的功能类型。
    由于仅在java8上支持Closures,因此Oracle团队依赖于使用SAM类型。 那是一个类,只有一个您必须要重写的抽象方法(单一抽象方法)。 您可以使用与Oracle相同的策略,并在使用函数对象的任何地方编写SAM类型。
  8. 没有更多的触发器。
    用变更侦听器替换触发器。 您可以将更改侦听器分配给与在Javafx脚本上分配触发器相同的属性。
  9. 子类上没有更多的变量覆盖。
    对于这些,您将无法在Java上替代它,最好的事情是将值重新分配给子类上的变量。 但这并不相同,因为覆盖变量,在超类的初始化程序块之前被赋值。

有关此主题的更多信息,请参见结帐:

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开发教程

翻译自: https://www.javacodegeeks.com/2011/12/migrating-from-javafx-13-to-javafx-20.html

从JavaFX 1.3迁移到JavaFX 2.0相关推荐

  1. )类 新建javafx程序时_关于JavaFX杂谈

    Sun公司已于2008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发互联网应用程序(RIA).该产品于2007年5月在JavaOne大会上首次对外公布.Java ...

  2. 在javafx中界面主题_最小的JavaFX演示文稿(在JavaFX中)

    在javafx中界面主题 如果您要进行有关JavaFX的演示,那么使用JavaFX本身进行演示非常方便. 这样,您无需离开演示文稿即可轻松显示示例. 这是一个非常简单的示例. 在NetBeans中,设 ...

  3. 基于javafx的五子棋_基于JavaFX的SimpleDateFormat演示程序

    基于javafx的五子棋 对于使用Java Date进行格式化的新手,甚至对于使用Java Date进行格式化的新手,对于有经验的Java开发人员来说,可能都会有些棘手,其中之一就是使用SimpleD ...

  4. 最小的JavaFX演示文稿(在JavaFX中)

    如果您想进行有关JavaFX的演示,那么使用JavaFX本身进行演示非常方便. 这样,您无需离开演示文稿就可以轻松显示示例. 这是一个非常简单的示例. 在NetBeans中,设置一个新的JavaFX项 ...

  5. JavaFx教程-02第一个javaFX程序

    本节,我将采用渐进的.循序渐进的方法来解释如何写出第一个JavaFX应用程序. 程序主框架 任何一个JavaFX应用程序的程序框架都如下所示: import javafx.application.Ap ...

  6. javafx 教程_Java验证(javafx)

    javafx 教程 验证是核心javafx框架所缺少的一件事. 为了填补这一空白, controlsfx中已经存在一个第三方验证库. 但是,我有一个问题:它不是在考虑FXML的情况下创建的. 这并不是 ...

  7. JavaFX的:入门使用JavaFX

    Hello World,JavaFX的风格 教你是什么样创建和构建JavaFX应用程序的最佳方法是用一个"Hello World"应用程序.本教程的一个额外好处是,它使您可以测试您 ...

  8. spock_将Spock 1.3测试迁移到Spock 2.0

    spock 了解Spock 2.0 M1(基于JUnit 5)的期望,如何在Gradle和Maven中迁移到它以及为什么报告发现的问题很重要:). 重要说明. 我绝对不建议您永久将您的真实项目迁移到S ...

  9. 路遥工具箱全面迁移至 .NET 6.0 并发布 3.0 版本及迁移记录详解

    随着 .NET 6.0 的发布 NewLife 组件也进行了升级,并在 2022 年 1 月份全面停止了对 .NET Framework 的支持框架依赖升级至 .NET Standard 2.1 . ...

最新文章

  1. 深入Java虚拟机——类型装载、连接(转)
  2. Weex 解决Print: Entry, :CFBundleIdentifier, Does Not Exist 错误方法
  3. mysql 分表_MySQL如何分库分表
  4. 世界公认的第一商人——成就犹太商人的15个信条
  5. matlab错误使用builtin,MATLAB环境下运行MATLAB函数时发生异常
  6. 英语阅读测试,很神奇吧~
  7. 如何在批处理文件/ cmd中休眠五秒钟[重复]
  8. MPLS virtual private network 地址重叠实验(华为设备)
  9. Linux 命令整理-tailf
  10. 在uniapp或者vue中,单行文字或者数字无法换行导致后面内容无法展示问题的解决方案
  11. 瑞友天翼应用虚拟化系统服务器lP,瑞友天翼应用虚拟化系统 V6.0.6发版
  12. ubuntu 安装 TM2009 QQ2013
  13. 一类Chen混沌系统的混沌吸引子——MATLAB实现
  14. 网易云音乐歌单监控 IOS捷径
  15. SQL优化建议(不定时更新添加)
  16. Java数组实现进制转换
  17. python setup.py install与python setup.py develop的区别
  18. 阿里云服务器购买折扣优惠券及注意事项
  19. 多线程情况下如何保证线程安全
  20. 六维力数据中去除重力、漂移力任务---ros之talker、listener、ur、坑

热门文章

  1. log4j 程序日志_Log4j错误–减慢您的应用程序
  2. selenium 4_Selenium4 Alpha –期望什么?
  3. java项目使用junit_在Java 8之前的项目中使用JUnit 5
  4. jdk 1.8 字符串+_JDK 9/10/11:Java字符串上+ =的副作用
  5. 某人想在h小时内钓到_为某人命名以重新连接到您的服务器
  6. java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件
  7. jvm7 jvm8_自我修复的JVM
  8. java拦截器项目应用_使用拦截器分析Java EE应用程序的性能下降/提高
  9. 教程:用Java创建和验证JWT
  10. Spring应用架构