JavaFX 1:bind和var访问修饰符

时间:2009-05-24 08:21:08

标签: binding javafx access-modifiers javafx-1

 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中只有脚本(默认)绑定访问

3 个答案:

答案 0 :(得分: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
               }
    }
}

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

答案 1 :(得分:1)

为了更加精确,场景的宽度和高度被声明为“public-init”。这意味着它们只能在初始化时设置。 “场景对象”文字中的高度绑定意味着将更新高度,从而导致错误。舞台的宽度和高度被声明为“公共”,这意味着它们可以更新。

答案 2 :(得分:0)

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