2009-05-24 50 views
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是說:JavaFX 1:綁定和var訪問修飾符

高度有腳本只(默認)綁定在javafx.scene.Scene

訪問

回答

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 width和height(只有在調整大小後纔會更新)

0

你應該現場尺寸不綁定到任何東西。主要是因爲當用戶嘗試調整包含窗口的大小時,場景尺寸不會更新。

+0

但這就是我想要發生的 - 我想能夠綁定窗口的大小 – 2009-05-24 10:03:24

1

更精確地說,場景的寬度和高度被聲明爲「public-init」。這意味着它們只能在初始化時設置。場景對象字面上的高度綁定意味着高度將被更新,因此錯誤。舞臺的寬度和高度被聲明爲「公共」,這意味着它們可以被更新。