Класс SkinBase<C extends Control>
- javafx.scene.control.SkinBase<C>
Все реализуемые интерфейсы:
Skin<C>
public abstract class SkinBase<C extends Control> extends Object implements Skin<C>
skin. Элемент управления пользовательского интерфейса абстрагируется за интерфейсом Skinnable.С тех пор:
JavaFX 8.0
-
Краткое описание конструкторов
Конструкторы Модификатор Конструктор и описание protectedSkinBase(C control)Конструктор для всех экземпляров SkinBase.
-
Краткое описание методов
Все методыСтатические методыМетоды экземпляровКонкретные методы Модификатор и тип Метод и описание protected doublecomputeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет смещение базовой линии на основе первого управляемого дочернего элемента.protected doublecomputeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет максимальную допустимую высоту Skin, на основе предоставленной ширины.protected doublecomputeMaxWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет максимальную допустимую ширину Skin, на основе предоставленной высоты.protected doublecomputeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет минимальную допустимую высоту Skin, на основе предоставленной ширины.protected doublecomputeMinWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет минимальную допустимую ширину Skin, на основе предоставленной высоты.protected doublecomputePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет предпочтительную высоту этогоSkinBase.protected doublecomputePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет предпочтительную ширину этогоSkinBase.protected voidconsumeMouseEvents(boolean value)Определяет, должны ли все события мыши автоматически потребляться.voiddispose()Вызывается Skinnable, когда Skin заменяется на Skinnable.protected voidexecuteAccessibleAction(AccessibleAction action, Object... parameters)ObservableList<Node>getChildren()Возвращает дочерние элементы skin.static List<CssMetaData<? extends Styleable,?>>getClassCssMetaData()List<CssMetaData<? extends Styleable,?>>getCssMetaData()Этот метод должен делегироватьNode.getClassCssMetaData(), чтобы CssMetaData узла можно было получить без необходимости рефлексии.NodegetNode()Получает узел, представляющий этот Skin.CgetSkinnable()Получает Skinnable, которому назначен этот Skin.protected voidlayoutChildren(double contentX, double contentY, double contentWidth, double contentHeight)Вызывается во время прохода макета сцены.protected voidlayoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент внутри области этого skin, определеннойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.protected voidlayoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент внутри области этого skin, определеннойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.protected voidlayoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент внутри области этого skin, определеннойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.protected voidpositionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)Утилитарный метод, который позиционирует дочерний элемент внутри области этого skin, определеннойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.protected voidpositionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)Утилитарный метод, который позиционирует дочерний элемент внутри области этого skin, определеннойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.voidpseudoClassStateChanged(PseudoClass pseudoClass, boolean active)protected ObjectqueryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)protected doublesnappedBottomInset()Утилитарный метод для получения нижнего отступа, который включает отступ padding и border.protected doublesnappedLeftInset()Утилитарный метод для получения левого отступа, который включает отступ padding и border.protected doublesnappedRightInset()Утилитарный метод для получения правого отступа, который включает отступ padding и border.protected doublesnappedTopInset()Утилитарный метод для получения верхнего отступа, который включает отступ padding и border.protected doublesnapPosition(double value)Если свойство snapToPixel этого региона true, возвращает значение, округлённое до ближайшего пикселя, иначе возвращает то же значение.protected doublesnapSize(double value)Если свойство snapToPixel этого региона true, возвращает значение, округленное вверх до ближайшего пикселя, иначе возвращает то же значение.protected doublesnapSpace(double value)Если свойство snapToPixel этого региона true, возвращает значение, округлённое до ближайшего пикселя, иначе возвращает то же значение.
-
Подробное описание конструкторов
-
SkinBase
protected SkinBase(C control)
Конструктор для всех экземпляров SkinBase.Параметры:
control- Элемент управления, к которому должен быть прикреплен этот Skin.
-
-
Подробное описание методов
-
getSkinnable
public final C getSkinnable()
Возвращает Skinnable, к которому назначен этот Skin. Skin должен быть создан для одного и только одного Skinnable. Это значение может измениться с не-null на null только при удалении Skin из Skinnable, и только как следствие вызоваSkin.dispose().Вызывающий, который создает Skinnable, также должен создать Skin и правильно установить взаимосвязь между элементом управления и его Skin.
Определено в:
getSkinnableв интерфейсеSkin<C extends Control>Возвращает:
Не-null Skinnable или значение null, если Skin удален.
-
getNode
public final Node getNode()
Возвращает узел, представляющий этот Skin. Он никогда не должен быть null, за исключением случаев после вызоваSkin.dispose(), и он никогда не должен изменяться, кроме как при изменении на null.
-
dispose
public void dispose()
Вызывается Skinnable, когда Skin заменяется на Skinnable. Этот метод позволяет Skin реализовать любую необходимую логику для очистки после того, как Skin больше не нужен. Может использоваться для освобождения нативных ресурсов. МетодыSkin.getSkinnable()иSkin.getNode()должны возвращать null после вызова dispose. Вызов dispose дважды не имеет эффекта.
-
getChildren
public final ObservableList<Node> getChildren()
Возвращает дочерние элементы Skin.
-
layoutChildren
protected void layoutChildren(double contentX, double contentY, double contentWidth, double contentHeight)Вызывается во время прохода по макетированию сцены.
-
consumeMouseEvents
protected final void consumeMouseEvents(boolean value)
Определяет, должны ли все события мыши автоматически потребляться.
-
computeMinWidth
protected double computeMinWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет минимально допустимую ширину Skin на основе предоставленной высоты.Параметры:
height- Высота Skin, в случае если это значение может диктовать минимальную ширину.Возвращает:
Double, представляющий минимальную ширину этого Skin.
-
computeMinHeight
protected double computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет минимально допустимую высоту Skin на основе предоставленной ширины.Параметры:
width- Ширина Skin, в случае если это значение может диктовать минимальную высоту.Возвращает:
Double, представляющий минимальную высоту этого Skin.
-
computeMaxWidth
protected double computeMaxWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет максимально допустимую ширину Skin на основе предоставленной высоты.Параметры:
height- Высота Skin, в случае если это значение может диктовать максимальную ширину.Возвращает:
Double, представляющий максимальную ширину этого Skin.
-
computeMaxHeight
protected double computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет максимально допустимую высоту Skin на основе предоставленной ширины.Параметры:
width- Ширина Skin, в случае если это значение может диктовать максимальную высоту.Возвращает:
Double, представляющий максимальную высоту этого Skin.
-
computePrefWidth
protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет предпочтительную ширину этогоSkinBase. По умолчанию эта ширина вычисляется как ширина области, занимаемой его управляемыми дочерними элементами, когда они расположены в их текущих позициях со своими предпочтительными ширинами.Параметры:
height- высота, которая должна использоваться, если предпочтительная ширина зависит от неёВозвращает:
вычисленную предпочтительную ширину
-
computePrefHeight
protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет предпочтительную высоту этогоSkinBase. По умолчанию эта высота вычисляется как высота области, занимаемой его управляемыми дочерними элементами, когда они расположены в их текущих позициях со своими предпочтительными высотами.Параметры:
width- ширина, которая должна использоваться, если предпочтительная высота зависит от неёВозвращает:
вычисленную предпочтительную высоту
-
computeBaselineOffset
protected double computeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)Вычисляет смещение базовой линии на основе первого управляемого дочернего элемента. Если такого элемента нет, возвращаетNode.getBaselineOffset().Параметры:
topInset- пиксельное отступ сверхуВозвращает:
смещение базовой линии
-
snappedTopInset
protected double snappedTopInset()
Утилитарный метод для получения верхнего отступа, включающего отступ и отступ границы. Затем привязан к целым пикселям, если getSkinnable().isSnapToPixel() равно true.Возвращает:
Округленное значение отступа сверху
-
snappedBottomInset
protected double snappedBottomInset()
Утилитарный метод для получения нижнего отступа, включающего отступ и отступ границы. Затем привязан к целым пикселям, если getSkinnable().isSnapToPixel() равно true.Возвращает:
Округленное значение отступа снизу
-
snappedLeftInset
protected double snappedLeftInset()
Утилитарный метод для получения левого отступа, включающего отступ и отступ границы. Затем привязан к целым пикселям, если getSkinnable().isSnapToPixel() равно true.Возвращает:
Округленное значение отступа слева
-
snappedRightInset
protected double snappedRightInset()
Утилитарный метод для получения правого отступа, включающего отступ и отступ границы. Затем привязан к целым пикселям, если getSkinnable().isSnapToPixel() равно true.Возвращает:
Округленное значение отступа справа
-
snapSpace
protected double snapSpace(double value)
Если свойство snapToPixel этой области равно true, возвращает значение, округленное до ближайшего пикселя, иначе возвращает то же значение.Параметры:
value- значение отступа, которое нужно округлитьВозвращает:
значение, округлённое до ближайшего пикселя
-
snapSize
protected double snapSize(double value)
Если свойство snapToPixel этой области равно true, возвращает значение, округленное вверх до ближайшего пикселя, иначе возвращает то же значение.Параметры:
value- значение размера, которое нужно округлитьВозвращает:
значение, округленное вверх до ближайшего пикселя
-
snapPosition
protected double snapPosition(double value)
Если свойство snapToPixel этой области равно true, возвращает значение, округлённое до ближайшего пикселя, иначе возвращает то же значение.Параметры:
value- значение позиции, которое нужно округлитьВозвращает:
значение, округлённое до ближайшего пикселя
-
positionInArea
protected void positionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент в области этого skin, определённойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.Эта функция не изменяет размеры узла и использует ширину и высоту области макета узла для определения того, как его следует разместить в области.
Если вертикальное выравнивание равно
VPos.BASELINE, то это поместит узел так, чтобы его собственная базовая линия выровнялась с переданнойbaselineOffset, в противном случае параметр baseline игнорируется.Если
snapToPixelравноtrueдля этого skin, то значения x/y будут округлены до ближайших пиксельных границ.Параметры:
child- дочерний элемент, который размещается в этом skin
-
positionInArea
protected void positionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент в области этого skin, определённойareaX,areaY,areaWidthxareaHeight, со смещением базовой линии относительно этой области.Эта функция не изменяет размеры узла и использует ширину и высоту области макета узла для определения того, как его следует разместить в области.
Если вертикальное выравнивание равно
VPos.BASELINE, то это поместит узел так, чтобы его собственная базовая линия выровнялась с переданнойbaselineOffset, в противном случае параметр baseline игнорируется.Если
snapToPixelравноtrueдля этого skin, то значения x/y будут округлены до ближайших пиксельных границ.Если
marginне равно null, то этот пробел будет выделен вокруг дочернего элемента внутри области макета. margin может быть null.Параметры:
child- дочерний элемент, который размещается в этом skinС тех пор как:
JavaFX 8.0
-
-
layoutInArea
protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент в области данного стиля, определённой параметрамиareaX,areaY,areaWidthxareaHeight, с отступом от базовой линии относительно этой области.Если дочерний элемент является изменяемым по размеру, этот метод изменит его размер для заполнения указанной области, если максимальный размер узла этого не препятствует. Если предпочтительный максимальный размер узла меньше размера области, будет использован максимальный размер. Если максимальный размер узла больше размера области, то узел будет изменён для подгонки под область, если его минимальный размер не препятствует этому.
Если у дочернего элемента задан ненулевой параметр contentBias, то этот метод воспользуется им при изменении размера дочернего элемента. Если contentBias горизонтальный, он сначала задаст его ширину на размер ширины области (до максимального ограничения ширины дочернего элемента), а затем передаст это значение для вычисления высоты дочернего элемента. Если contentBias дочернего элемента вертикальный, то он задаст его высоту на размер высоты области (до максимального ограничения высоты дочернего элемента), а затем передаст эту высоту для вычисления ширины дочернего элемента. Если contentBias дочернего элемента равен null, то его ширина и высота не зависят друг от друга.
Если дочерний элемент не изменяем по размеру (Shape, Group и т. д.), то он будет только позиционирован, но не изменён по размеру.
Если конечный размер дочернего элемента отличается от размера области (либо потому, что он не изменяем по размеру, либо из-за его предпочтений в настройках размера), то эта функция выровняет узел относительно области, используя значения горизонтального и вертикального выравнивания. Если valignment равен
VPos.BASELINE, то базовая линия узла будет выровнена с параметром смещения базовой линии области, в противном случае параметр базовой линии игнорируется.Если
snapToPixelравноtrueдля данного стиля, то результирующие значения x, y будут округлены до ближайшего пикселя, а значения ширины/высоты будут округлены до ближайшего большего пикселя.Параметры:
child- дочерний элемент, позиционируемый в данном стиле
-
layoutInArea
protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент в области данного стиля, определённой параметрамиareaX,areaY,areaWidthxareaHeight, с отступом от базовой линии относительно этой области.Если дочерний элемент изменяем по размеру, этот метод изменит его размер для заполнения указанной области, если максимальный размер узла этого не препятствует. Если предпочтительный максимальный размер узла меньше размера области, будет использован максимальный размер. Если максимальный размер узла больше размера области, то узел будет изменён для подгонки под область, если его минимальный размер не препятствует этому.
Если у дочернего элемента задан ненулевой параметр contentBias, то этот метод воспользуется им при изменении размера дочернего элемента. Если contentBias горизонтальный, он сначала задаст его ширину на размер ширины области (до максимального ограничения ширины дочернего элемента), а затем передаст это значение для вычисления высоты дочернего элемента. Если contentBias дочернего элемента вертикальный, то он задаст его высоту на размер высоты области (до максимального ограничения высоты дочернего элемента), а затем передаст эту высоту для вычисления ширины дочернего элемента. Если contentBias дочернего элемента равен null, то его ширина и высота не зависят друг от друга.
Если дочерний элемент не изменяем по размеру (Shape, Group и т. д.), то он будет только позиционирован, но не изменён по размеру.
Если конечный размер дочернего элемента отличается от размера области (либо потому, что он не изменяем по размеру, либо из-за его предпочтений в настройках размера), то эта функция выровняет узел относительно области, используя значения горизонтального и вертикального выравнивания. Если valignment равен
VPos.BASELINE, то базовая линия узла будет выровнена с параметром смещения базовой линии области, в противном случае параметр базовой линии игнорируется.Если
marginне равен null, то это пространство будет выделено вокруг дочернего элемента в области макета. Отступ может быть null.Если
snapToPixelравноtrueдля данного стиля, то результирующие значения x, y будут округлены до ближайшего пикселя, а значения ширины/высоты будут округлены до ближайшего большего пикселя.Параметры:
child- дочерний элемент, позиционируемый в данном стиле
-
layoutInArea
protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment)Утилитарный метод, который размещает дочерний элемент в области данного стиля, определённой параметрамиareaX,areaY,areaWidthxareaHeight, с отступом от базовой линии относительно этой области.Если дочерний элемент изменяем по размеру, этот метод использует
fillWidthиfillHeightдля определения, следует ли изменять его размер для заполнения области или сохранить размеры дочернего элемента. Если fillWidth/fillHeight равны true, то этот метод будет изменять размер дочернего элемента только до его максимальных размеров. Если предпочтительный максимальный размер узла меньше размера области, будет использован максимальный размер. Если максимальный размер узла больше размера области, то узел будет изменён для подгонки под область, если его минимальный размер не препятствует этому.Если у дочернего элемента задан ненулевой параметр contentBias, то этот метод воспользуется им при изменении размера дочернего элемента. Если contentBias горизонтальный, он сначала задаст его ширину, а затем передаст это значение для вычисления высоты дочернего элемента. Если contentBias дочернего элемента вертикальный, то он сначала задаст его высоту, а затем передаст это значение для вычисления ширины дочернего элемента. Если contentBias дочернего элемента равен null, то его ширина и высота не зависят друг от друга.
Если дочерний элемент не изменяем по размеру (Shape, Group и т. д.), то он будет только позиционирован, но не изменён по размеру.
Если конечный размер дочернего элемента отличается от размера области (либо потому, что он не изменяем по размеру, либо из-за его предпочтений в настройках размера), то эта функция выровняет узел относительно области, используя значения горизонтального и вертикального выравнивания. Если valignment равен
VPos.BASELINE, то базовая линия узла будет выровнена с параметром смещения базовой линии области, в противном случае параметр базовой линии игнорируется.Если
marginне равен null, то это пространство будет выделено вокруг дочернего элемента в области макета. Отступ может быть null.Если
snapToPixelравноtrueдля данного стиля, то результирующие значения x, y будут округлены до ближайшего пикселя, а значения ширины/высоты будут округлены до ближайшего большего пикселя.Параметры:
child- дочерний элемент, позиционируемый в данном стиле
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Возвращает:
CssMetaData, связанный с этим классом, который может включать CssMetaData его суперклассов.
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Этот метод должен делегироватьNode.getClassCssMetaData(), чтобы CssMetaData узла можно было получить без необходимости в рефлексии.Возвращает:
CssMetaData, связанный с этим узлом, который может включать CssMetaData его суперклассов.
-
pseudoClassStateChanged
public final void pseudoClassStateChanged(PseudoClass pseudoClass, boolean active)
-
queryAccessibleAttribute
protected Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
-
executeAccessibleAction
protected void executeAccessibleAction(AccessibleAction action, Object... parameters)
-
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.