Класс CssMetaData<S extends Styleable,V>
- javafx.css.CssMetaData<S,V>
Параметры типа:
S — тип Styleable
Прямые известные подклассы:
public abstract class CssMetaData<S extends Styleable,V> extends Object
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
См. также:
-
Краткое описание конструкторов
Конструкторы Модификатор Конструктор и описание 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. ИспользуйтеStyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)StringtoString()
-
Подробное описание конструкторов
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)Создаёт CssMetaData с заданными параметрами и без дочерних свойств.Параметры:
property— свойство CSS
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)Создаёт CssMetaData с заданными параметрами и без дочерних свойств.Параметры:
property— свойство CSS
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)Создаёт CssMetaData с заданными параметрами, inherit — false и без дочерних свойств.Параметры:
property— свойство CSS
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter)Создаёт CssMetaData с заданными параметрами, initialValue — null, inherit — false и без дочерних свойств.Параметры:
property— свойство CSS
-
-
Подробное описание методов
-
set
@Deprecated public void set(S styleable, V value, StyleOrigin origin)Устаревший. Этот метод больше не вызывается из кода CSS. ИспользуйтеStyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)Устанавливает значение соответствующего свойства на заданном узле.Параметры:
styleable— Styleable, на котором устанавливается значение свойства
-
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, и начальное значение Shape.StyleableProperties.FILL также Color.BLACK.Однако могут быть исключения. Начальное значение может зависеть от состояния узла. У ScrollBar ориентация по умолчанию — горизонтальная. Если ScrollBar — вертикальная, этот метод должен вернуть Orientation.VERTICAL. В противном случае вертикальный ScrollBar будет неправильно установлен на горизонтальный ScrollBar при применении начального значения.
Возвращает:
Начальное значение свойства, возможно null
-
getSubProperties
public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
Дочерние свойства представляют собой составляющие свойства, если таковые имеются. Например, "-fx-font-weight" — дочернее свойство "-fx-font".
-
isInherits
public final boolean isInherits()
Если true, значение этого свойства совпадает с вычисленным значением этого свойства у родителя.См. также:
-
equals
public boolean equals(Object obj)
Два объекта CssMetaData считаются равными, если значения ихpropertyравны.
-
hashCode
public int hashCode()
-
toString
public String toString()
-
© 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.