2017-01-10 8 views
1

私はBorderPaneを使用し、中央部にレイアウトを置くとき、それは他の部分をカバーするオーバーラップどのように私は他の部分をカバーの中央部を防ぐことができ、N borderPane enter image description hereBorderPaneセンターは、他の部分

テーブルはBorderPaneの右部分をカバーします。 テーブルをペインの内側に置きます。

+0

私たちはシーングラフの全体構造を共有するように気をつけますか?変換が適用されていますか?シーンサイズを考慮してシーンを適切にレイアウトすることができない最小サイズが設定されていますか? – fabian

答えて

3

BorderPaneドキュメントから:

BorderPaneは、デフォルトでそのコンテンツをクリップしないので、子供の分のサイズは、その中にフィットできない場合子どもの境界は、独自の境界の外側に延長する可能性がありますスペース。

オーバーフローを防止するために、いくつかのオプションがあります:

  1. それが最小サイズを持っていないように、あなたはあなたの子ノードをコーディングすることができます。
  2. すべての子の最小サイズの合計が少なくとも境界枠の最小サイズに等しいことを確認できます。
  3. 子ノードにclipを明示的に設定することができます。デモについては、JavaFX Pane Clippingを参照してください。

    final Rectangle outputClip = new Rectangle(); 
    childNode.setClip(outputClip); 
    
    childNode.layoutBoundsProperty().addListener((ov, oldValue, newValue) -> { 
        outputClip.setWidth(newValue.getWidth()); 
        outputClip.setHeight(newValue.getHeight()); 
    });  
    
  4. あなたが国境ペインに子ノードを設定するためには、一番上に表示されるかを決定し、そのすべてのノードが不透明である場合には、最初とサイドペインがオーバーフローの上に塗装される中央のペインを設定することができます。

+0

1 - 最小サイズを持たないように子ノードをコーディングできます。 作品、ありがとう:) – Maysara

関連する問題