2009-05-24 5 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

[OK]を、私はそれを考え出した:

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が、幅と高さ(サイズ変更が完了した後にのみ更新される)ではなく、シーンの幅と高さにバインドされたときに、より良く更新されることを発見しました。

0

でバインドアクセス権を持っています。主に、ユーザーがウィンドウを含むサイズを変更しようとしたときにシーンのサイズが更新されないためです。

+0

しかし、それは私が起こりたいことです - 私はウィンドウのサイズをバインドできるようにしたいです –

+0

私は変数としてシーンを保存し、幅/高さを自動的に更新する必要がありますか? –

+0

私は手動で意味します* –

1

これをより正確にするために、シーンの幅と高さは "public-init"として宣言されています。これは、初期化時にのみ設定できることを意味します。 Sceneオブジェクトのリテラルの高さのバインドは、高さが更新されることを意味し、したがってエラーです。ステージの幅と高さは、更新可能な「public」として宣言されています。

関連する問題