从JavaFX 1.3迁移到JavaFX 2.0

几天前,我完成了将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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

九度OJ 1034:寻找大富翁 (排序)

时间限制&#xff1a;1 秒 内存限制&#xff1a;32 兆 特殊判题&#xff1a;否 提交&#xff1a;5925 解决&#xff1a;2375 题目描述&#xff1a;浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.输入&#xff1a;输入包含多组测试用例.每个用例首先包含2个整数n&#xff08…

ubuntu php 无法执行exec_利用webhook使php项目自动部署

php中文网最新课程每日17点准时技术干货分享1.先来讲一下自动部署的原理&#xff0c;一般在我们push代码的时候&#xff0c;可以自动请求webhook中设置的url&#xff0c;完成一次请求与响应。那么只要我们设置的url地址请求的php文件内容是执行命令行git push命令&#xff0c;则…

android-verticalseekbar——Android可视化SeekBar类库

android-verticalseekbar——Android可视化SeekBar类库转载于:https://www.cnblogs.com/zhujiabin/p/5706246.html

C语言开发笔记(八)static

在C语言中&#xff0c;static有3个作用&#xff1a; &#xff08;1&#xff09;在函数体&#xff0c;一个被声明为静态的变量在这一函数体内被调用的过程中维持其值不变。 #include <stdio.h>void test(void) {static int i 0;printf("%d\n", i); }int main…

ppt修复无法读取_移动硬盘故障分析以及建议修复方法

移动硬盘中存储了大量的重要数据&#xff0c;一旦出现什么问题&#xff0c;会让人急得焦头烂额。换个硬盘倒是件小事&#xff0c;但其中资料、数据的丢失更令人懊恼。而在硬盘使用的过程中&#xff0c;由于使用者一时的不注意&#xff0c;往往就很容易造成意外的问题。接下来&a…

(原创)c#学习笔记04--流程控制01--布尔逻辑03--运算符优先级

转载于:https://www.cnblogs.com/wodehao0808/p/4896018.html

一些定义–测试技术9

我认为我即将结束有关测试技术的博客系列&#xff0c;感觉好像已经过去了。 对我来说更清楚的一件事是&#xff0c;测试方法仍处于起步阶段&#xff0c;因此是开发人员之间争执或讨论的明确来源&#xff0c;这是一件好事。 我怀疑我们正处于职业发展史上的某个时刻&#xff0c;…

百度谷歌面试题目

全新整理&#xff1a;微软、谷歌、百度等公司经典面试100题[第101-160题] 整理:July、二零一一年三月九日。应网友承诺与要求&#xff0c;全新整理。转载&#xff0c;请注明出处。博主说明&#xff1a;此100题V0.2版&#xff0c;本人不再保证&#xff0c;还会提供答案。-------…

C学习杂记(三)笔试题:字符串大小写字母切换

字符串大小写转换&#xff0c;大写转小写&#xff0c; 小写转大写 #include <stdio.h> #include <string.h>int tramsform(char str[]) {int i 0;int strLen strlen(str);for(i 0; i < strLen; i){if( (str[i] > A) && (str[i] < Z) ){str[i]…

m.2接口和nvme区别_NVMe/SATA SSD有啥不一样?萌新怎么选

随着NAND技术的升级迭代&#xff0c;堆栈层数不断提高使得SSD单位容量成本不断下降&#xff0c;消费级市场基本已经成为了SSD的天下。目前主流的SSD大致有两种接口&#xff0c;分别是M.2和SATA两种类型。NVMe/SATA有啥区别SATA接口的SSD执行的AHCI协议标准&#xff0c;是目前较…

javascript 高级特性探讨A4-A5(call和原型.对象复制)

在js中&#xff0c;call和apply是二个神奇的方法&#xff0c;但同时也是容易令人迷惑的二个方法&#xff0c;call和apply的功能是以不同的对象作为上下文来调用某个函数的&#xff0c;简而言之&#xff0c;就是允许一个对象去调用另一个对象的成员函数&#xff0c;咋一看似乎很…

带有NetBeans 7.1 RC 2的WebLogic 12c快速入门

WebLogic服务器12c停运了几天。 它是针对“裸露”的Java开发人员的–花哨的Fusion Middleware东西将继续沿线升至12c。 因此&#xff0c;这基本上是我要运行的版本。 今天&#xff0c;我为您提供了一个最新的NetBeans 7.1&#xff08;RC 2&#xff09;和WebLogic的快速入门 &am…

C学习杂记(四)sizeof计算联合体大小

#include <stdio.h>union u1 {char a[13];int b; };int main(void) {printf("%d\n", sizeof(u1));return 0; } 结果为16。 联合体的大小取决于它所有的成员中占用空间最大的一个成员的大小。u2最大的空间是char[13]&#xff0c;但是因为另一个成员int b的存在…

python爬虫反爬机制_Python Scrapy突破反爬虫机制(项目实践)

对于 BOSS 直聘这种网站&#xff0c;当程序请求网页后&#xff0c;服务器响应内容包含了整个页面的 HTML 源代码&#xff0c;这样就可以使用爬虫来爬取数据。但有些网站做了一些“反爬虫”处理&#xff0c;其网页内容不是静态的&#xff0c;而是使用 JavaScript 动态加载的&…

树的算法 已知二叉树的前序序列和中序序列求解树

题目: 已知二叉树的前序序列和中序序列求解树 比如 6 4    8 3  5   7 前序序列为6,4,3,5,8,7 中序序列为3,4,5,6,7,8 思路: 前序遍历序列的第一个元素必为根节点 则中序遍历序列中&#xff0c;该节点之前的为左子树&#xff0c;该节点之后的为右子树&#xff0c;若该节…

使用Spring配置LogBack日志记录

LogBack是由Log4j的同一作者创建的用于记录日志的API&#xff08;较新的实现&#xff0c;它类似于新版本&#xff09;&#xff0c;在本文中&#xff0c;我将展示如何在Spring项目中对其进行集成和使用。 在本教程中&#xff0c;我假设您正在使用一个简单的Spring ROO项目&…

自定义URL Scheme完全指南

iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上&#xff0c;该 scheme 用于从浏览器或其他应用中启动本应用。 注册自定义 URL Scheme 注册自定义 URL Scheme 的第一步是创建 URL Scheme — 在 Xcode Project Navigator 中找到并点击工程…

C学习杂记(五)形参实参笔试题

大意失荆州 不要以为简单就轻视&#xff0c;谨慎&#xff0c;细节&#xff0c;基础。 一、有以下程序 #include <stdio.h>typedef struct {int b, p;} A;void f(A c) {c.b 1; c.p 2; }void main(void) {A a {1, 2};f(a);printf("%d, %d\n", a.b, a.p); } …

avframe转byte数组_C# amp; VB6.0 图像与二维数组 互转

背景最近在研究C#进行图像处理&#xff0c;在图像处理中算法中&#xff0c;往往都是针对的是矩阵运算的。矩阵其实就是一个二维的数组。为了图像处理的速度&#xff0c;我们都需要放在内存中处理。但网络上收集的代码&#xff0c;往往都是以一维数组的样子提供结果&#xff0c;…

C学习杂记(六)%2.0f打印输出宽度

%m.nf&#xff0c;m表示整个浮点数的输出宽度&#xff0c;n表示小数输出宽度。 1、printf("%f\n", 12.34); 输出为12.340000。 2、printf("%2.0f\n", 12.34); 输出为12。 3、printf("%2.1f\n", 12.34); 输出为12.3。 4、printf(&qu…