Module  javafx.graphics
软件包  javafx.scene

Class Parent

  • All Implemented Interfaces:
    StyleableEventTarget
    已知直接子类:
    GroupRegionWebView


    public abstract class Parent
    extends Node
    在场景图中有子节点的所有节点的基类。

    该类处理所有分层场景图操作,包括添加/删除子节点,标记用于布局和渲染的分支,采摘,边界计算以及对每个脉冲执行布局传递。

    有两个直接具体的父子类

    • 对应用于子节点集合的效果和变换Group
    • Region可以使用CSS和布局子对象的节点类。
    从以下版本开始:
    JavaFX 2.0
    • 构造方法详细信息

      • Parent

        protected Parent​()
        构造新的 Parent
    • 方法详细信息

      • getChildren

        protected ObservableList<Node> getChildren​()
        获取此Parent的孩子列表。

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

        如果此Parent节点附加到已显示( Window.isShowing() )的Window附带的Scene ,那么其子项列表只能在JavaFX应用程序线程上进行修改。 如果违反限制,则抛出IllegalStateException

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

        结果
        这个 Parent的孩子列表。
      • getChildrenUnmodifiable

        public ObservableList<Node> getChildrenUnmodifiable​()
        获取此 Parent的子项列表作为只读列表。
        结果
        对这个父亲的孩子ObservableList的只读访问
      • getManagedChildren

        protected <E extends NodeList<E> getManagedChildren​()
        获取此 Parent的所有受管孩子的 Parent
        参数类型
        E - 子节点的类型
        结果
        此父级中所有受管孩子的列表
      • lookup

        public Node lookup​(String selector)
        描述从类复制: Node
        根据给定的CSS选择器,找到这个Node或第一个子节点。 如果此节点为Parent ,则此函数将遍历到分支中,直到找到匹配项。 如果多个子节点与指定的选择器匹配,则此函数返回其中的第一个。

        例如,如果节点的ID为“myId”,则可以使用查找方法来查找此节点,如下所示: scene.lookup("#myId");

        重写:
        lookupNode
        参数
        selector - 要查找的节点的css选择器
        结果
        第一个节点,从这个 Node开始,与CSS selector匹配,如果没有找到, selector null。
      • setNeedsLayout

        protected final void setNeedsLayout​(boolean value)
        设置propertyLayout属性的值。
        Property description:
        表示此节点及其子节点需要对下一个脉冲进行布局传递。
      • isNeedsLayout

        public final boolean isNeedsLayout​()
        获取propertyLayout属性的值。
        Property description:
        表示此节点及其子节点需要对下一个脉冲进行布局传递。
      • requestLayout

        public void requestLayout​()
        请求在渲染下一个场景之前执行布局传递。 这是异步批量发生一次“脉冲”或动画帧。

        如果此父对象是布局根或非托管,则将直接添加到场景的脏布局列表中,否则将调用requestParentLayout。

        从以下版本开始:
        JavaFX 8.0
      • requestParentLayout

        protected final void requestParentLayout​()
        请求在呈现下一个场景之前执行的父级的布局传递。 这是异步批量发生一次“脉冲”或动画帧。

        当目前的父母已经更改了最小/最大/偏好的宽度/高度时,可能会使用这种方法,但是不知道更改是否会导致实际的大小更改。 当它的父重新计算具有新提示的布局时,这将被确定。

      • prefWidth

        public double prefWidth​(double height)
        描述从类复制: Node
        返回节点在布局计算中使用的首选宽度。 如果节点可调整大小,其父级应将该值视为节点在其范围内的理想宽度。 如果节点不可调整,只需返回其layoutBounds宽度,该宽度应该被视为节点的刚性宽度。

        调用此方法的布局代码应首先检查节点的内容偏差。 如果节点具有垂直的内容偏置,则呼叫者应该传入首选宽度应该基于的高度值。 如果节点具有水平或空的内容偏置,则调用者应该传入-1。

        具有垂直内容偏置的节点子类应该尊重height参数,不管是-1还是正值。 所有其他子类可以忽略height参数(这可能是-1)。

        重写:
        prefWidthNode
        参数
        height - 如果首选宽度取决于应该使用的高度
        结果
        节点在布局期间应该调整大小的首选宽度结果将不会是NaN,也不会是负数。
        另请参见:
        Node.isResizable()Node.getContentBias()Node.autosize()
      • prefHeight

        public double prefHeight​(double width)
        描述从类复制: Node
        返回节点的首选高度,用于布局计算。 如果节点可调整大小,其父级应该将该值视为节点在其范围内的理想高度。 如果节点不可调整大小,则只返回其layoutBounds高度,该高度应该被视为节点的刚性高度。

        调用此方法的布局代码应首先检查节点的内容偏差。 如果节点具有水平的内容偏置,则呼叫者应该传入首选高度应该基于的宽度值。 如果节点具有垂直或空的内容偏置,则调用者应该传入-1。

        具有水平内容偏倚的节点子类应该符合高度参数,不管是-1还是正值。 所有其他子类可以忽略height参数(这可能是-1)。

        重写:
        prefHeightNode
        参数
        width - 如果首选高度取决于应该使用的宽度
        结果
        节点在布局期间应该调整大小的首选高度结果将不会是NaN,也不会是负数。
        另请参见:
        Node.getContentBias()Node.autosize()
      • minWidth

        public double minWidth​(double height)
        描述从类复制Node
        返回节点在布局计算中使用的最小宽度。 如果节点可调整大小,则其父值不应该调整其小于此值的宽度。 如果节点不可调整,则返回其layoutBounds宽度。

        调用此方法的布局代码应首先检查节点的内容偏差。 如果节点具有垂直的内容偏置,则呼叫者应该传入最小宽度应该基于的高度值。 如果节点具有水平或空的内容偏置,则调用者应该传入-1。

        具有垂直内容偏置的节点子类应该尊重height参数,不管是-1还是正值。 所有其他子类可以忽略height参数(这可能是-1)。

        如果节点的Node.maxWidth(double)低于此数字,则优先级为minWidth 这意味着节点不应该被调整到minWidth以下。

        重写:
        minWidthNode
        参数
        height - 如果最小宽度取决于应该使用的高度
        结果
        布局期间节点应该调整大小的最小宽度。 结果永远不会是NaN,也不会是负面的。
        另请参见:
        Node.isResizable()Node.getContentBias()
      • minHeight

        public double minHeight​(double width)
        说明从类别复制Node
        返回节点在布局计算中使用的最小高度。 如果节点可调整大小,则父节点不应该将其高度调整为小于该值的大小。 如果节点不可调整大小,返回其layoutBounds高度。

        调用此方法的布局代码应首先检查节点的内容偏差。 如果节点具有水平的内容偏置,则呼叫者应该传递最小高度应该基于的宽度值。 如果节点具有垂直或空的内容偏置,则调用者应该传入-1。

        具有水平内容偏置的节点子类应该符合宽度参数,不管是-1还是正值。 所有其他子类可以忽略width参数(这可能是-1)。

        如果节点的Node.maxHeight(double)低于此数字,则优先级为minHeight 这意味着节点不应该被调整到minHeight以下。

        重写:
        minHeightNode
        参数
        width - 如果最小高度取决于应该使用的宽度
        结果
        在布局期间节点应该调整大小的最小高度结果将不会是NaN,也不会是负数。
        另请参见:
        Node.isResizable()Node.getContentBias()
      • computePrefWidth

        protected double computePrefWidth​(double height)
        计算这个Parent的首选宽度。 默认实现将这个宽度计算为被管理子对象以其首选宽度位于其当前位置时占用的区域的宽度。
        参数
        height - 如果首选宽度取决于应该使用的高度
        结果
        计算的优选宽度
      • computePrefHeight

        protected double computePrefHeight​(double width)
        计算这个Parent的首选高度。 默认实现将此高度计算为被管理儿童以其首选高度位于其当前位置时占用的区域的高度。
        参数
        width - 如果偏好的高度取决于应该使用的宽度
        结果
        计算的优选高度
      • computeMinWidth

        protected double computeMinWidth​(double height)
        计算Parent的最小宽度。 默认实现只是返回pref宽度。
        参数
        height - 如果最小宽度取决于它应该使用的高度
        结果
        计算的最小宽度
        从以下版本开始:
        JavaFX 2.1
      • computeMinHeight

        protected double computeMinHeight​(double width)
        计算这个Parent的最小高度。 默认实现只是返回pref高度;
        参数
        width - 如果最小高度取决于应该使用的宽度
        结果
        计算出的最小高度
        从以下版本开始:
        JavaFX 2.1
      • getBaselineOffset

        public double getBaselineOffset​()
        基于第一个受管理的子节点计算基线偏移量。 如果没有这样的孩子,返回Node.getBaselineOffset()
        重写:
        getBaselineOffsetNode
        结果
        基线偏移
      • layout

        public final void layout​()
        在此父项下的场景图上执行自上而下的布局传递。 当父进行布局时调用此方法是无操作的。
      • layoutChildren

        protected void layoutChildren​()
        在布局传递过程中调用这个Parent的孩子。 默认情况下,它只会将受管理的可调整大小的内容的大小设置为其首选大小,并且不会执行任何节点定位。

        子类应该根据需要重写此函数以布局内容。

      • getStylesheets

        public final ObservableList<String> getStylesheets​()
        获取链接到此父项内容使用的样式表的字符串URL的可观察列表。 详见Scene.getStylesheets()

        有关使用CSS与场景图的其他信息,请参阅CSS Reference Guide

        结果
        要与此Parent一起使用的样式表列表
        从以下版本开始:
        JavaFX 2.1
      • updateBounds

        protected void updateBounds​()
      • queryAccessibleAttribute

        public Object queryAccessibleAttribute​(AccessibleAttribute attribute,
                                               Object... parameters)
        该方法由辅助技术调用以请求属性的值。

        子类通常覆盖此方法来实现特定角色所需的属性。
        如果未处理特定属性,则必须调用超类实现。

        重写:
        queryAccessibleAttributeNode
        参数
        attribute - 请求的属性
        parameters - 可选参数列表
        结果
        请求的属性的值
        另请参见:
        AccessibleAttribute