- java.lang.Object
-
- javafx.css.CssMetaData<S,V>
-
- Параметры типа:
-
S- Тип Styleable -
V- Тип, в который преобразуется проанализированное значение.
- Непосредственные подклассы:
FontCssMetaData
public abstract class CssMetaData<S extends Styleable,V> extends Object
Объект CssMetaData предоставляет информацию о CSS-стиле и обеспечивает механизмы для установки значения свойства CSS. Он содержит имя CSS-свойства, тип, в который преобразуется значение CSS, и значение свойства по умолчанию.CssMetaData является мостом между значением, которое может быть синтаксически представлено в файле .css, и
StyleableProperty. Существует взаимно однозначное соответствие между CssMetaData и StyleableProperty. Как правило, CssMetaData узла включает CssMetaData его предков. Например, CssMetaData прямоугольника включает CssMetaData фигуры и также узла. Во время обработки CSS движок CSS итерируется по CssMetaData узла, ищет проанализированное значение каждогоproperty, преобразует проанализированное значение и устанавливает значение в StyleableProperty.Метод
Node.getCssMetaData()используется для получения списка List<CssMetaData>. Этот метод вызывается часто, и целесообразно возвращать статический список, а не создавать список при каждом вызове. По соглашению, классы узлов, имеющие CssMetaData, реализуют статический методgetClassCssMetaData(), и принято, чтобыgetCssMetaData()просто возвращалиgetClassCssMetaData(). ЦельgetClassCssMetaData()— позволить подклассам легко включать CssMetaData какого-либо предка.StyleablePropertyFactoryзначительно упрощает создание StyleableProperty и соответствующего CssMetaData.Этот пример является типичной реализацией.
private DoubleProperty gapProperty = new StyleableDoubleProperty(0) { @Override public CssMetaData<MyWidget,Number> getCssMetaData() { return GAP_META_DATA; } @Override public Object getBean() { return MyWidget.this; } @Override public String getName() { return "gap"; } }; private static final CssMetaData GAP_META_DATA = new CssMetaData<MyWidget,Number>("-my-gap", StyleConverter.getSizeConverter(), 0d) { @Override public boolean isSettable(MyWidget node) { return node.gapProperty == null || !node.gapProperty.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(MyWidget node) { return (StyleableProperty<Number>)node.gapProperty; } }; private static final List<CssMetaData<? extends Node, ?>> cssMetaDataList; static { List<CssMetaData<? extends Node, ?>> temp = new ArrayList<CssMetaData<? extends Node, ?>>(Control.getClassCssMetaData()); temp.add(GAP_META_DATA); cssMetaDataList = Collections.unmodifiableList(temp); } public static List<CssMetaData<? extends Node, ?>> getClassCssMetaData() { return cssMetaDataList; } @Override public List<CssMetaData<? extends Node, ?>> getCssMetaData() { return getClassCssMetaData(); }- С:
- JavaFX 8.0
- См. также:
StyleablePropertyFactory
-
Краткое описание конструкторов
Конструкторы Модификатор Конструктор Описание protectedCssMetaData(String property, StyleConverter<?,V> converter)Создаёт CssMetaData с заданными параметрами, initialValue — null, inherit — false и без дочерних свойств.protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue)Создаёт CssMetaData с заданными параметрами, inherit — false и без дочерних свойств.protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)Создаёт CssMetaData с заданными параметрами и без дочерних свойств.protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)Создаёт CssMetaData с заданными параметрами и без дочерних свойств.
-
Краткое описание методов
Все методыМетоды экземпляраАбстрактные методыКонкретные методыМетоды устарели Модификатор и тип Метод Описание booleanequals(Object obj)Два объекта CssMetaData считаются равными, если их значенияpropertyравны.StyleConverter<?,V>getConverter()VgetInitialValue(S styleable)Начальное значение CssMetaData соответствует значению по умолчанию StyleableProperty в коде.StringgetProperty()abstract StyleableProperty<V>getStyleableProperty(S styleable)Возвращает соответствующееStyleablePropertyдля данного узла.List<CssMetaData<? extends Styleable,?>>getSubProperties()Подсвойства — это составляющие свойства, если таковые имеются.inthashCode()booleanisInherits()Если true, значение данного свойства такое же, как значение вычисленного свойства у родителя.abstract booleanisSettable(S styleable)Проверка, устанавливаемо ли соответствующее свойство на данном узле.voidset(S styleable, V value, StyleOrigin origin)Устарело.Этот метод больше не вызывается из CSS-кода.StringtoString()
-
Подробное описание конструкторов
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования значения, полученного из CSS, в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty -
inherits- true, если это свойство использует наследование CSS -
subProperties- дочерние свойства этого свойства. Например, свойство -fx-font имеет дочерние свойства -fx-font-family, -fx-font-size, -fx-font-weight и -fx-font-style.
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования значения, полученного из CSS, в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty -
inherits- true, если это свойство использует наследование CSS
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
Создаёт CssMetaData с заданными параметрами, наследование установлено в false и без дочерних свойств.- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования значения, полученного из CSS, в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter)
Создаёт CssMetaData с заданными параметрами, initialValue равно null, наследование установлено в false и без дочерних свойств.- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования значения, полученного из CSS, в объект Java.
-
-
Подробное описание методов
-
set
@Deprecated(since="8") public void set(S styleable, V value, StyleOrigin origin)
Устарело.Этот метод больше не вызывается из CSS-кода. ИспользуйтеStyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)Устанавливает значение соответствующего свойства на заданном узле.- Параметры:
-
styleable- Styleable, на котором устанавливается значение свойства -
value- значение, на которое устанавливается свойство -
origin- источник
-
isSettable
public abstract boolean isSettable(S styleable)
Проверяет, устанавливается ли соответствующее свойство на заданном узле. Этот метод вызывается перед поиском стилей для данного свойства. Он абстрактный, чтобы код мог проверить, устанавливается ли свойство, не расширяя его. В общем случае, свойство устанавливается, если оно не равно null или не связано.- Параметры:
-
styleable- Styleable, на котором устанавливается значение свойства - Возвращает:
- true, если свойство может быть установлено.
-
getStyleableProperty
public abstract StyleableProperty<V> getStyleableProperty(S styleable)
Возвращает соответствующееStyleablePropertyдля данного узла. Обратите внимание, что вызов этого метода приведет к расширению свойства.- Параметры:
-
styleable- Styleable, для которого возвращается свойство - Возвращает:
- StyleableProperty, соответствующее этому CssMetaData для данного Styleable
-
getProperty
public final String getProperty()
- Возвращает:
- имя свойства CSS
-
getConverter
public final StyleConverter<?,V> getConverter()
- Возвращает:
- Преобразователь CSS, который обрабатывает преобразование значения CSS в объект Java
-
getInitialValue
public V getInitialValue(S styleable)
Начальное значение CssMetaData соответствует значению по умолчанию StyleableProperty в коде. Например, значение по умолчанию Shape.fill равно Color.BLACK, а initialValue Shape.StyleableProperties.FILL также равно Color.BLACK.Однако могут быть исключения. initialValue может зависеть от состояния узла. У ScrollBar ориентация по умолчанию горизонтальная. Если ScrollBar вертикальный, этот метод должен вернуть Orientation.VERTICAL. В противном случае, вертикальный ScrollBar будет неправильно настроен на горизонтальный ScrollBar при применении начального значения.
- Параметры:
-
styleable- styleable - Возвращает:
- Начальное значение свойства, возможно null
-
getSubProperties
public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
Подсвойства относятся к составляющим свойствам этого свойства, если таковые имеются. Например, "-fx-font-weight" является подсвойством "-fx-font".- Возвращает:
- список подсвойств
-
isInherits
public final boolean isInherits()
Если true, значение этого свойства такое же, как вычисленное значение этого свойства у родителя.- Возвращает:
- false по умолчанию, если inherits не true
- См. также:
- Наследование CSS
-
© 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.