作者:郝春利
转贴请注明出处:http://blog.csdn.net/froole
-
JavaFX脚本的语法特征
- 目标指向
- 声明语法
- 静态型
- 绑定
- 替换触发器
- 时间间隔支持
- 声明语法
声明Stage目标举例:
Stage {
title: "Hello"
width: 160
height: 80
onClose: function() {
System.exit(0);
}
scene: Scene {
content: SwingLabel {
font: Font {
size: 24
}
text: "Hello, World!"
}
}
} - 静态型定义
整数型定义举例:
var number: Integer;
var number = 10; -
绑定
提示:println相当于java中的System.out.pringln- 变量间绑定
var x = 10;
var y = bind x;
println("Y: {y}");
x = 20;
println("Y: {y}"); 输出结果:
Y: 10
Y: 20: - 变量计算结果绑定
var x = 10;
var y = bind x * 2;
println("Y: {y}");
x = 20;
println("Y: {y}");输出结果:
Y: 20
Y: 40 - 多个变量绑定
var x = 10;
var y = 5;
var z = bind x + y;
println("Z: {z}");
x = 20;
println("Z: {z}");
y = 10;
println("Z: {z}");输出结果:
Z: 15
Z: 25
Z: 30 - 函数绑定
bound function add(a: Integer, b: Integer): Integer {
return a + b;
}
var x = 10;
var y = 5;
var z = bind add(x, y);
println("Z: {z}");
x = 20;
println("Z: {z}");
y = 10;
println("Z: {z}");输出结果:
Z: 15
Z: 25
Z: 30 - 双方向绑定
var x = 10;
var y = bind x with inverse;
println("X: {x} Y: {y}");
x = 20;
println("X: {x} Y: {y}");
y = 30;
println("X: {x} Y: {y}");输出结果:
X: 10 Y: 10
X: 20 Y: 20
X: 30 Y: 30
- 变量间绑定
-
替换触发器
- 空值替换
var value: String on replace oldValue {
println("/nValue has changed!");
println("Old Value: {oldValue}");
println("New Value: {value}");
};
value = "JavaFX";
value = "JavaFX Script";输出结果:
Value has changed!
Old Value:
New Value:
Value has changed!
Old Value:
New Value: JavaFX
Value has changed!
Old Value: JavaFX
New Value: JavaFX Script - 初始值替换
var value: String = "Java" on replace oldValue {
println("/nValue has changed!");
println("Old Value: {oldValue}");
println("New Value: {value}");
};
value = "JavaFX";
value = "JavaFX Script";输出结果:
Value has changed!
Old Value:
New Value: Java
Value has changed!
Old Value: Java
New Value: JavaFX
Value has changed!
Old Value: JavaFX
New Value: JavaFX Script
- 空值替换
- 时间间隔支持
var duration1: Duration = 10ms; // 10毫秒
var duration2: Duration = 1s; // 1秒
var duration3: Duration = 1m; // 1分
println("{duration1} * 100 == {duration2}? {duration1* 100 == duration2}"); 输出结果:
10ms * 100 == 1000ms? true
转贴请注明出处:http://blog.csdn.net/froole