Module  javafx.graphics
软件包  javafx.scene.layout

Class Pane

  • All Implemented Interfaces:
    StyleableEventTarget
    已知直接子类:
    AnchorPaneBorderPaneDialogPaneFlowPaneGridPaneHBoxPopupControl.CSSBridgeStackPaneTextFlowTilePaneVBox


    @DefaultProperty("children")
    public class Pane
    extends Region
    布局窗格的基类需要将子列表暴露为公开,以便子类的用户可以自由添加/删除子级。

    该类可以直接用于需要儿童的绝对定位的情况,因为它不执行布局,而不是调整大小可调整大小的儿童到其首选的大小。 应用程序负责定位孩子,因为窗格在布局期间单独放置位置。 例如:

       Pane canvas = new Pane(); canvas.setStyle("-fx-background-color: black;"); canvas.setPrefSize(200,200); Circle circle = new Circle(50,Color.BLUE); circle.relocate(20, 20); Rectangle rectangle = new Rectangle(100,100,Color.RED); rectangle.relocate(70,70); canvas.getChildren().addAll(circle,rectangle);  

    注意:如果一个应用程序需要孩子在父母中保持对齐(居中,位于左上角等),那么应该使用一个StackPane

    无论儿童的可见属性值如何,窗格都会调整每个被管理的小孩的大小; 所有布局计算都忽略非托管孩子。

    可调整范围

    窗格的父级将在布局期间在窗格的可调整大小范围内调整窗格的大小。 默认情况下,窗格根据其内容计算此范围,如下表所示:

    Pane Resize Table width height minimum left plus right insets. top plus bottom insets. preferred width required to encompass each child at its current x location and preferred width. height required to encompass each child at its current y location and preferred height. maximum Double.MAX_VALUE Double.MAX_VALUE

    窗格的无界最大宽度和高度表示父级可以将其调整大小超出其首选大小,以填充分配给它的空间。

    窗格提供直接设置尺寸范围的属性。 这些属性默认为哨兵值Region.USE_COMPUTED_SIZE,但是应用程序可能会根据需要将它们设置为其他值:

       pane.setPrefSize(500,400);  
    应用程序可以通过将这些属性设置回Region.USE_COMPUTED_SIZE来还原计算值。

    窗格默认情况下不剪切其内容,因此儿童的边界可能会延伸到自己的界限之外,无论是儿童位于负坐标还是窗格被调整为小于其首选大小。

    从以下版本开始:
    JavaFX 2.0
    • 构造方法详细信息

      • Pane

        public Pane​()
        创建一个窗格布局。
      • Pane

        public Pane​(Node... children)
        创建一个窗格布局。
        参数
        children - 此窗格的初始子项集。
        从以下版本开始:
        JavaFX 8.0
    • 方法详细信息

      • getChildren

        public ObservableList<Node> getChildren​()
        描述从类复制: Parent
        获取这个Parent的孩子列表。

        有关设置Parent的子列表的场景图结构限制,请参阅Node的课程文档。 如果对子列表的更改违反了这些限制,则忽略该更改,并恢复子列表的先前值。 在这种情况下抛出一个IllegalArgumentException

        如果这个Parent节点被连接到Scene连接到Window被showning( Window.isShowing() ),那么其子女的名单必须只在JavaFX应用程序线程修改。 如果违反限制,则抛出IllegalStateException

        注意子类:如果您重写此方法,则必须从实现中返回调用此超级方法的结果。 从任何getChildren()实现返回的实际列表实例必须是由此父项所拥有和管理的列表。 推翻这种方法的唯一典型的目的是推广这种方法。

        重写:
        getChildrenParent
        结果
        可修改的儿童名单。