ScalaFX是JavaFX 2.0的Scala绑定(UI DSL),主要特性如下:
1)对程序员友好的层次结构式的对象创建语法。
stage = new Stage { title.value = "Hello Stage" width = 600 height = 450 scene = new Scene { fill = Color.LIGHTGREEN content = new Rectangle { x = 25 y = 40 width = 100 height = 100 fill <== when (hover) then Color.GREEN otherwise Color.RED } } }
2)易于理解的属性绑定(Binding)语法。
height <== rect1.height + rect2.height width <== max(rect1.width, rect2.width, rect3.width) color <== when (hover) then Color.GREEN otherwise Color.RED text <== when (rect.hover || circle.hover && !disabled) then textField.text + " is enabled" otherwise "disabled" rect.hover onInvalidate { needsRepaint = true }
3)精心设计的动画语法。
Seq( at(0 s) {circle.centerX -> random * 800}, at(0 s) {circle.centerY -> random * 600}, at(40 s) {circle.centerX -> random * 800}, at(40 s) {circle.centerY -> random * 600} )
4)类型安全的API。
5)无缝的JavaFX/ScalaFX互操作。