JavaFX的1:绑定和var访问修饰符
-
05-09-2019 - |
题
var width = 400;
var height = 400;
Stage {
style: StageStyle.TRANSPARENT
onClose: function():Void {
System.exit(0);
}
scene: Scene {
content: Scribble {}
width: width
height: bind height
}
}
为什么宽度工作,但高度不是? 而且,我能做些什么来解决这个问题? NetBeans是说:
高度具有脚本只(默认)结合在javafx.scene.Scene访问
解决方案
好的,我计算出来:
var width : Number = 400;
var height : Number = 400;
var stage:Stage = Stage {
width: bind width with inverse
height: bind width with inverse
scene: Scene {
content: Scribble {
canvasWidth: bind stage.scene.width
canvasHeight: bind stage.scene.height
}
}
}
虽然,我并不真的需要在这里指定的宽度和高度,因为我可以通过级可变访问这些。现场的宽度和高度时更新舞台的宽度和高度的变化。我发现,当绑定到现场的宽度和高度,而不是对VAR的宽度和高度canvasWidth将更新好了很多(这一次调整大小完成后只更新)
其他提示
要放在这个更精确的,场景的宽度和高度被声明为“公共-INIT”。这意味着他们只能在初始化时设定。场景中的对象的文字高度绑定意味着,高度将被更新,因此错误。舞台的宽度和高度被声明为“公共”这意味着它们可以被更新。
您不应现场尺寸绑定到任何东西。这主要是因为当用户试图调整大小的包含窗口的场景尺寸不会得到更新。
不隶属于 StackOverflow