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でスクリプトのみ(デフォルト)バインドのアクセス権を持っている。
解決
[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
}
}
}
が、私は本当に私は、ステージ変数を介してこれらにアクセスすることができますので、ここでは、幅と高さを指定する必要はありません。ステージの幅と高さが変化したときのシーンの幅と高さが更新されます。私は、シーンの幅と高さにではなく、VARの幅と高さに結合したときにcanvasWidthがかなり良く更新されることがわかってきました(これはサイズ変更が完了した後にのみ更新)
他のヒント
この上より正確には、シーンの幅と高さは、「公共のinit」として宣言されています。これは、彼らが唯一の初期化時に設定できることを意味します。シーンオブジェクトリテラル内の高さにバインドがその高さは、エラー、したがって、更新されますを意味します。ステージの幅と高さは、それらが更新されることができることを意味し、「パブリック」として宣言されています。
あなたは何にもシーンの寸法をバインドするべきではありません。ユーザーが含むウィンドウのサイズを変更しようとすると、ほとんどのシーン寸法が更新されないので。
所属していません StackOverflow