2
 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 说:

height 在 javafx.scene.Scene 中只有脚本(默认)绑定访问

4

3 回答 3

2

好的,我想通了:

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
               }
    }
}

虽然,我真的不需要在这里指定宽度和高度,因为我可以通过舞台变量访问它们。场景宽度和高度会随着舞台宽度和高度的变化而更新。我发现 canvasWidth 在绑定到场景宽度和高度时会更新得更好,而不是绑定到 var 宽度和高度(只有在调整大小完成后才会更新)

于 2009-05-24T22:24:25.760 回答
1

更准确地说,场景的宽度和高度被声明为“public-init”。这意味着它们只能在初始化时设置。场景对象文字中的高度绑定意味着高度将被更新,因此会出现错误。舞台的宽度和高度被声明为“公共”,这意味着它们可以更新。

于 2009-08-27T14:00:41.007 回答
0

您不应该将场景尺寸绑定到任何东西。主要是因为当用户尝试调整包含窗口的大小时,场景尺寸不会更新。

于 2009-05-24T09:36:30.800 回答