3

BorderPane私のルートノードである単純なインスタンスがありますScene。境界ペインの右側には、ボタンを含むいくつかの GUI コントロールを備えたパネルがあります。このボタンをクリックすると、Foo拡張するクラス ( )のインスタンスが作成StackPaneされ、このインスタンスが境界ペインの中央ノードとして配置されます。

インスタンスからボーダー ペインの使用可能な中央スペースの幅と高さの値をそれぞれFoo呼び出して取得したいのですが、常に 0 を返しますか?this.getLayoutBounds.getWidth()...getHeight()

4

1 に答える 1

6

StackPane の layoutBoundsProperty にリスナーを追加するか、その高さと幅のプロパティにバインドします。

JavaFX は、レイアウト パスが実行されるまで、StackPane の高さと幅に対してゼロを返します。StackPane はサイズ変更可能なノードであるため、JavaFX は通常、シーンに追加されてステージに表示されるまで、そのサイズを認識しません。

初期サイズのみを知りたい場合は、stage.Show を呼び出した後で、StackPane で getHeight または getWidth を呼び出すことができます。

今後のレイアウト パスでは、使用可能な領域が変更されると、StackPane のサイズが変更される可能性があります。そのため、現在のペイン サイズを常に知りたい場合は、リスナーまたはバインドを使用することをお勧めします。

于 2012-09-28T17:50:39.063 に答える