JavaFX教程-更新觸發器
更新觸發器
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 {num} 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 {num} 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 {oldValue} with {newValue} at position {indexof newValue} in X.nums");
}
trigger on X.num[oldValue] = newValue {
System.out.println("X.num: just replaced {oldValue} with {newValue}");
}
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操作符返回)與被替換成員的順序位置一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-209697/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- javafx開發計算器Java
- 觸發器實現表資料自動更新觸發器
- SAP 資料更新的觸發
- bettertouchtool mac教程:如何新增一個新的觸發器Mac觸發器
- mysql觸發器MySql觸發器
- D觸發器觸發器
- SqlServer-觸發器SQLServer觸發器
- logon觸發器for dbaGo觸發器
- MySQL使用觸發器MySql觸發器
- 語句觸發器觸發器
- MySql-觸發器MySql觸發器
- sqlserver 列觸發器SQLServer觸發器
- 除錯觸發器除錯觸發器
- 建立MySQL觸發器MySql觸發器
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- 觸發器 REFERENCING OLD AS OLD觸發器
- 行為和觸發器觸發器
- MySQL觸發器介紹MySql觸發器
- sql-server觸發器SQLServer觸發器
- java程式通過swing呼叫javaFx更新 資料Java
- Oracle開發基礎-觸發器Oracle觸發器
- SQL Server:觸發器詳解SQLServer觸發器
- mvvm模式 事件觸發器[wpf]MVVM模式事件觸發器
- MySQL入門-- TRIGGER(觸發器)MySql觸發器
- 批量更新時無法觸發事件的解決方法事件
- SQL觸發器例項講解SQL觸發器
- 禁止oracle表的觸發器triggerOracle觸發器
- MSMQ 觸發器 安裝失敗MQ觸發器
- SQL Server 觸發器詳情HOPPSQLServer觸發器
- MySQL觸發器的使用規則MySql觸發器
- SqlServer觸發器的建立與使用SQLServer觸發器
- JavaFX: IntelliJ 開發 Window 應用JavaIntelliJ
- JAVAFXJava
- 暫存器,觸發器,三極體小結觸發器
- 金蝶雲星空欄位之間連續觸發值更新
- Java開發桌面程式學習(九)——JavaFxTemplate JavaFx模版 更簡單進行JavaFx程式開發Java
- 雲開發 CloudBase 已上線觸發器能力Cloud觸發器
- OGG DDL觸發器引發的故障系列(一)觸發器
- 淺入淺出SQL Server 觸發器SQLServer觸發器