快速业务通道

JavaFX Script高级特性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
rt 语句可以往序列中的指定位置插入新元素。使用 insert x into seq 会把 x 添加到序列末尾。而 insert x before seq[idx] 和 insert x after seq[idx] 则分别可以把新元素插入到 seq[idx] 所对应的元素的前面和后面。

JavaFX Script高级特性(2)

时间:2011-02-12 IBM 成富

delete 的语法如 代码清单 3 中所示。

清单 3. delete 语句的语法

delete seq delete x from seq delete seq[idx] delete seq[a..b]

在 代码清单 3 列出的四种用法中,第一种会删除整个序列;第二种和第三种都会删除指定元素,不同的是第二种需要指定元素的值,而第三种需要指定其序号;第四种是用来删除序列中给定范围之内的全部元素的。

触发器

JavaFX Script 提供类似 SQL 中触发器的机制来处理数据的变化。如果在某个属性上声明了触发器,那么当它的值发生变化的时候,触发器就会被触发,预先定义的逻辑就会被执行。代码清单 4 中给出了触发器的一个实例。

清单 4. 触发器示例

class Person {  attribute address : String  on replace oldAddress = newAddress {    System.out.println(" 地址已经从 {oldAddress} 改为 {newAddress} 。 ");  }; } var person = Person {  address : " 北京市朝阳区 " }; person.address = " 北京市海淀区 ";

从 代码清单 4 中可以看到,当属性 address 的值发生改变时,会输出相应的提示信息。该属性的旧值和新值都可以得到,并在相应的处理逻辑代码中使用。触发器不仅可以用于单值属性,也可以用于序列上。代码清单 5 和 代码清单 6 中给出的两个例子分别演示了如何在序列中插入和删除元素之后得到通知。

清单 5. 序列中插入新元素的触发器

class Company {   attribute employees : String[]    on replace oldEmployees = newEmployees {    if (sizeof employees - sizeof oldEmployees == sizeof newEmployees) {      System.out.println(" 欢迎新员工 {newEmployees} 加入! ");    }   }; } var company = new Company(); insert " 张三 " into company.employees; insert " 李四 " into company.employees;

清单 6. 序列中删除元素的触发器

class Student {   attribute courses : String[]    on replace oldCourses = newCourses {     if (sizeof newCourses == 0) {      System.out.println(" 你已经成功退选了课程 {oldCourses} 。 ");     }    } } var student = new Student(); insert " 网络信息体系结构 " into student.courses; insert " 编译原理 " into student.courses; delete student.courses[0];

JavaFX Script高级特性(3)

时间:2011-02-12 IBM 成富

数据绑定

JavaFX Script 中,属性初始化的时候,可以通过 bind 将属性的值和某个表达式绑定起来,当该表达式所引用的对象发生变化时,该属性的值也会自动更新。方法也可以通过 bound 来设成绑定的。以 代码清单 7 为例,方法 getPercent 在其内部的变量的值发生改变的时候,会自动重新求值。属性 currentValue 的值的改变首先使得方法 getPercent 的值发生改变,然后再使得 percent 的值发生变化。这一切都是自动的。

清单 7. 数据绑定示例

class Stock {  attribute currentValue : Number on replace oldValue = newValue {    lastValue = oldValue;  }  attribute lastValue : Number;  bound function getPercent() : Number {    return (currentValue - lastValue) / lastValue;  } } var stock = Stock {   currentValue : 100   lastValue : 98.6

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号