BorderPane中心与其他部分重叠

时间:2017-01-10 09:13:16

标签: javafx

当我使用BorderPane并在中心部分放置一个布局时,它会覆盖其他部分,如何防止覆盖其他部分的中心部分n borderPane enter image description here

如您所见,该表涵盖了BorderPane的右侧部分。 我把桌子放在窗格内。

1 个答案:

答案 0 :(得分:4)

来自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. 将子节点设置到边框窗格中的顺序决定了哪个节点显示在顶部,因此如果所有节点都是不透明的,则可以先设置中心窗格,然后在任何溢出上绘制边窗格。