Module  javafx.controls

Class LabeledSkinBase<C extends Labeled>

    • 构造方法详细信息

      • LabeledSkinBase

        public LabeledSkinBase​(C labeled)
        LabeledSkinBase的构造方法。 必须指定“标签”,不能为空。 在构造函数调用结束时,皮肤将被标记为needsLayout,并将根据标记的当前状态进行完全配置。 对标签的任何后续更改将通过监听器处理并适当应用。
        参数
        labeled - 这个皮肤应该被安装的标签。
    • 方法详细信息

      • updateChildren

        protected void updateChildren​()
        更新由LabeledSkinBase管理的子项,LabeledSkinBase可以是Labeled图形和/或Text节点。 仅使用实际必须使用的那些节点。 例如,使用GRAPHIC_ONLY的ContentDisplay不添加文本节点,并且使用TEXT_ONLY的ContentDisplay,不会添加图形。
      • computeMinWidth

        protected double computeMinWidth​(double height,
                                         double topInset,
                                         double rightInset,
                                         double bottomInset,
                                         double leftInset)
        计算并返回此Labeled的最小宽度。 最小宽度是“...”宽度的较小值,带有实际文本的宽度。 这样,如果文本宽度本身小于省略号,那么我们应该将其用作最小宽度,否则省略号需要是最小宽度。

        我们在这里使用相同的计算方法,无论我们在谈论单个或多个标签。 所以一个多行的标签可能会发现,“...”的宽度与它将会得到的一样小。

        重写:
        computeMinWidthSkinBase<C extends Labeled>
        参数
        height - 皮肤的高度,以防该值可能决定最小宽度。
        topInset - 像素啪嗒的顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素攫取底部插图
        leftInset - 像素拍摄左边插图
        结果
        表示此皮肤最小宽度的双倍。
      • computeMinHeight

        protected double computeMinHeight​(double width,
                                          double topInset,
                                          double rightInset,
                                          double bottomInset,
                                          double leftInset)
        根据提供的宽度计算皮肤的最小允许高度。
        重写:
        computeMinHeight中的 SkinBase<C extends Labeled>
        参数
        width - 皮肤的宽度,以防该值可能决定最小高度。
        topInset - 像素拍摄顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素攫取底部插图
        leftInset - 像素拍摄左边插图
        结果
        一个双倍代表这个皮肤的最小高度。
      • computePrefWidth

        protected double computePrefWidth​(double height,
                                          double topInset,
                                          double rightInset,
                                          double bottomInset,
                                          double leftInset)
        计算SkinBase的首选宽度。 默认实现将这个宽度计算为被管理子对象以其首选宽度位于其当前位置时占用的区域的宽度。
        重写:
        computePrefWidth中的 SkinBase<C extends Labeled>
        参数
        height - 如果首选宽度取决于应该使用的高度
        topInset - 像素拍摄的顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素攫取底部插图
        leftInset - 像素拍摄左边插图
        结果
        计算的优选宽度
      • computePrefHeight

        protected double computePrefHeight​(double width,
                                           double topInset,
                                           double rightInset,
                                           double bottomInset,
                                           double leftInset)
        计算这个SkinBase的首选高度。 默认实现将此高度计算为被管理儿童以其首选高度位于其当前位置时占用的区域的高度。
        重写:
        computePrefHeightSkinBase<C extends Labeled>
        参数
        width - 如果首选高度取决于应该使用的宽度
        topInset - 像素拍摄的顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素啪嗒的底部插入
        leftInset - 像素拍摄左边插图
        结果
        计算的优选高度
      • computeMaxWidth

        protected double computeMaxWidth​(double height,
                                         double topInset,
                                         double rightInset,
                                         double bottomInset,
                                         double leftInset)
        根据提供的高度计算皮肤的最大允许宽度。
        重写:
        computeMaxWidth中的 SkinBase<C extends Labeled>
        参数
        height - 皮肤的高度,以防该值可能决定最大宽度。
        topInset - 像素拍摄的顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素攫取底部插图
        leftInset - 像素拍摄左边插图
        结果
        双倍表示此皮肤的最大宽度。
      • computeMaxHeight

        protected double computeMaxHeight​(double width,
                                          double topInset,
                                          double rightInset,
                                          double bottomInset,
                                          double leftInset)
        根据提供的宽度计算皮肤的最大允许高度。
        重写:
        computeMaxHeight中的 SkinBase<C extends Labeled>
        参数
        width - 皮肤的宽度,以防该值可能决定最大高度。
        topInset - 像素拍摄顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素啪嗒的底部插图
        leftInset - 像素拍摄左边插图
        结果
        一个双倍代表这个皮肤的最大高度。
      • computeBaselineOffset

        public double computeBaselineOffset​(double topInset,
                                            double rightInset,
                                            double bottomInset,
                                            double leftInset)
        基于第一个受管理的子节点计算基线偏移量。 如果没有这样的孩子,返回Node.getBaselineOffset()
        重写:
        computeBaselineOffsetSkinBase<C extends Labeled>
        参数
        topInset - 像素拍摄的顶部插图
        rightInset - 像素拍摄正确的插图
        bottomInset - 像素攫取底部插图
        leftInset - 像素拍摄左边插图
        结果
        基线偏移
      • layoutChildren

        protected void layoutChildren​(double x,
                                      double y,
                                      double w,
                                      double h)
        布局算法的工作原理如下: - 获取标签的w / h,图形w / h,文本w / h - 基于graphicVPos,graphicHPos,graphicTextGap和图形w / h和文本w / h - (请注意,文本内容已经在必要时被预截取) - 基于内容w / h计算内容x / y并标记为w / h,标记的hpos和vpos定位图形和文本
        重写:
        layoutChildrenSkinBase<C extends Labeled>
        参数
        x - x位置
        y - y位置
        w - 宽度
        h - 高度
      • layoutLabelInArea

        protected void layoutLabelInArea​(double x,
                                         double y,
                                         double w,
                                         double h)
        在给定的区域内执行标签内容的实际布局。 该方法由覆盖layoutChildren()的子类调用。
        参数
        x - 控件的标签部分的x位置,内部填充
        y - 控件的标签部分的y位置,内部填充
        w - 控件的标签部分的宽度,不包括填充
        h - 控件的标签部分的高度,不包括填充
      • layoutLabelInArea

        protected void layoutLabelInArea​(double x,
                                         double y,
                                         double w,
                                         double h,
                                         Pos alignment)
        在给定的区域内执行标签内容的实际布局。 该方法由覆盖layoutChildren()的子类调用。
        参数
        x - 控件的标签部分的x位置,内部填充
        y - 控件的标签部分的y位置,内部填充
        w - 控件的标签部分的宽度,不包括填充
        h - 控件的标签部分的高度,不包括填充
        alignment - 给定区域内控件标签部分的对齐。 如果为空,则将使用控件的对齐方式。