JavaFX教程-更新触发器

ZDNet软件频道 时间:2008-08-02 作者: |  我要评论()
本文关键词:触发器 更新 JavaFX 软件
JavaFX类没有构造器,其属性也没有“setter”。作为替代物,JavaFX提供了类似SQL的触发器(trigger)来为使用者提供处理数据修改事件的能力。

更新触发器
JavaFX类没有构造器,其属性也没有“setter”。作为替代物,JavaFX提供了类似SQL的触发器(trigger)来为使用者提供处理数据修改事件的能力。

触发器使用trigger关键字声明。

触发器由头部和代码体构成。头部说明了触发器应用的事件类型。代码体则是在特定事件发生时执行的过程。在代码体中你可以使用任何在操作体中有效的语句。与成员函数/操作类似,在触发器中在代码体内的上下文对象可以通过this关键字访问。

 

创建触发器
你可以在一个新建对象的上下文中声明一个创建触发器

  import java.lang.System;

 class X {
  attribute nums: Number*;
 }

 trigger on new X {
  insert [3,4] into this.nums;
 }

 var x = new X();
 System.out.println(x.nums == [3,4]); // prints true
上面的示例中定义了一个在X类的实例被创建时执行的触发器。此触发器完成了对nums属性的初始赋值。

 

插入触发器
当一个成员被插入到多值属性时,我们可以定义一个插入触发器

 import java.lang.System;

 class X {
  attribute nums: Number*;
 }
 
 trigger on insert num into X.nums {
  System.out.println("just inserted into X.nums at position {indexof num}");
 }
 var x = new X();
 insert 12 into x.nums; // prints just inserted 12 into X.nums at position 0
 insert 13 into x.nums; // prints just inserted 13 into X.nums at position 1
以上示例代码中,“num”是引用被插入成员的变量(你可以按照自己喜好命名它)。此变量的上下文索引(由indexof操作符返回)与插入点一致。

 

删除触发器
当一个成员从多值属性中被删除时,我们可以定义一个删除触发器

  import java.lang.System;

 class X {
  attribute nums: Number*;
 }
 
 trigger on delete num from X.nums {
  System.out.println("just deleted from X.nums at position {indexof num}");
 }
 
 var x = X {
  nums: [12, 13]
 };
 
 delete x.nums[1]; // prints just deleted 13 from X.nums at position 1
 delete x.nums[0]; // prints just deleted 12 from X.nums at position 0
以上示例代码中,“num”是引用被删除成员的变量(你可以按照自己喜好命名它)。此变量的上下文索引(由indexof操作符返回)与删除点一致。

 


替换触发器
当一个单值的属性值或者多值属性的成员被替换时,我们可以定义一个替换触发器

 import java.lang.System;

 class X {
  attribute nums: Number*;
  attribute num: Number?;
 }
 
 trigger on X.nums[oldValue] = newValue {
  System.out.println("just replaced with at position {indexof newValue} in X.nums");
 }
 
 trigger on X.num[oldValue] = newValue {
  System.out.println("X.num: just replaced with ");
 }
 
 var x = X {
  nums: [12, 13]
  num: 100
 };
 x.nums[1] = 5; // prints just replaced 13 with 5 at position 1 in X.nums
 x.num = 3; // prints X.num: just replaced 100 with 3
 x.num = null;  // prints X.num: just replaced 3 with null
以上示例代码中,“oldValue”和“newValue”是两个变量,它们分别表示对被替换成员的旧值和替换后的新值的引用(你可以按照自己喜好命名)。变量的上下文索引(由indexof操作符返回)与被替换成员的顺序位置一致。

触发器

更新

JavaFX

软件


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134