Класс StyleSheet
- Все реализуемые интерфейсы:
Serializable, AbstractDocument.AttributeContext
public class StyleSheet extends StyleContext
toString должен возвращать строковое представление значения CSS. Основной точкой входа для реализаций HTML View, позволяющей получить их атрибуты, является метод getViewAttributes. Его следует реализовать так, чтобы установить желаемую политику связывания атрибутов с представлением. Каждый HTMLEditorKit (а следовательно, и каждый связанный с ним JEditorPane) может иметь собственную StyleSheet, однако по умолчанию один лист стилей используется совместно всеми экземплярами HTMLEditorKit. Экземпляр HTMLDocument также может иметь StyleSheet, содержащую специфичные для документа спецификации CSS.
Чтобы представления хранили меньше состояния и, следовательно, были более легковесными, StyleSheet может служить фабрикой средств отрисовки, выполняющих некоторые задачи визуализации. Это позволяет реализациям определять, что следует кэшировать, и совместно использовать данные на уровне селектора, общего для нескольких представлений. Поскольку StyleSheet может использоваться представлениями в нескольких документах, а HTML-атрибуты обычно не влияют на используемый селектор, возможности для совместного использования весьма значительны.
Правила хранятся в виде именованных стилей, а другая информация сохраняется для быстрого преобразования контекста элемента в правило. Следующий фрагмент кода выведет именованные стили, а значит, и содержащиеся в них правила CSS.
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public class ShowStyles {
public static void main(String[] args) {
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
StyleSheet styles = doc.getStyleSheet();
Enumeration rules = styles.getStyleNames();
while (rules.hasMoreElements()) {
String name = (String) rules.nextElement();
Style rule = styles.getStyle(name);
System.out.println(rule.toString());
}
System.exit(0);
}
}
Семантика определения того, когда стиль CSS должен переопределять визуальные атрибуты, заданные элементом, определена недостаточно четко. Например, html <body bgcolor=red> задает для body красный фон. Но если HTML-файл также содержит правило CSS body { background: blue }, становится менее понятно, какого цвета должен быть фон body. В текущей реализации визуальным атрибутам, заданным элементом, присваивается наивысший приоритет: они всегда проверяются раньше любых стилей. Поэтому в предыдущем примере фон будет красным, поскольку элемент body задает красный цвет фона.
Как уже упоминалось, поддерживается CSS. Полная спецификация CSS не поддерживается. Список поддерживаемых свойств см. в документации Javadoc класса CSS. Два важных понятия, связанных с разбором CSS, которые в настоящее время не поддерживаются, — это псевдоселекторы, например A:link { color: red }, и модификатор important.
- Примечание по реализации:
- В настоящее время эта реализация неполна. Ее можно заменить альтернативными реализациями, в которых реализованы все возможности. В будущих версиях этого класса будет обеспечена более полная поддержка CSS.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
StyleSheet.BoxPainter |
Класс для выполнения некоторых задач форматирования CSS. |
static final class |
StyleSheet.ListPainter |
Класс для выполнения некоторых задач форматирования списков CSS. |
Вложенные классы и интерфейсы, объявленные в классе StyleContext
StyleContext.NamedStyle, StyleContext.SmallAttributeSet
Краткое описание полей
Поля, объявленные в классе StyleContext
DEFAULT_STYLE
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
StyleSheet() |
Создает StyleSheet |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
AttributeSet |
addAttribute |
Добавляет атрибут в заданный набор и возвращает новый канонический набор. |
AttributeSet |
addAttributes |
Добавляет набор атрибутов к элементу. |
void |
addCSSAttribute |
Добавляет атрибут CSS в заданный набор. |
boolean |
addCSSAttributeFromHTML |
Добавляет атрибут CSS в заданный набор. |
void |
addRule |
Добавляет набор правил в таблицу стилей. |
void |
addStyleSheet |
Добавляет правила из StyleSheet ss к правилам получателя. |
protected MutableAttributeSet |
createLargeAttributeSet |
Создает большой набор атрибутов, оптимизированный по времени за счет занимаемого пространства. |
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet |
Создает компактный набор атрибутов, которым можно совместно пользоваться. |
Color |
getBackground |
Преобразует набор атрибутов в спецификацию цвета фона. |
URL |
getBase() |
Возвращает базовый адрес. |
StyleSheet.BoxPainter |
getBoxPainter |
Получает форматировщик блоков для заданного набора атрибутов CSS. |
AttributeSet |
getDeclaration |
Преобразует объявление CSS в AttributeSet, представляющий это объявление CSS. |
Font |
getFont |
Получает шрифт для заданного набора атрибутов. |
Color |
getForeground |
Преобразует набор атрибутов в спецификацию цвета переднего плана. |
static int |
getIndexOfSize |
Возвращает индекс модели размеров HTML/CSS. |
StyleSheet.ListPainter |
getListPainter |
Получает форматировщик списков для заданного набора атрибутов CSS. |
float |
getPointSize |
Возвращает размер в пунктах по заданному индексу размера. |
float |
getPointSize |
Возвращает значение размера в пунктах для строки, например "+2", "-2" или "2". |
Style |
getRule |
Получает правило, наиболее соответствующее селектору, заданному в виде строки. |
Style |
getRule |
Получает стиль для отображения заданного типа тега HTML. |
StyleSheet[] |
getStyleSheets() |
Возвращает массив связанных таблиц стилей. |
AttributeSet |
getViewAttributes |
Получает набор атрибутов для отображения в представлении. |
void |
importStyleSheet |
Импортирует таблицу стилей из url. |
void |
loadRules |
Загружает набор правил, заданных в соответствии с грамматикой CSS1. |
AttributeSet |
removeAttribute |
Удаляет атрибут из набора. |
AttributeSet |
removeAttributes |
Удаляет набор атрибутов элемента. |
AttributeSet |
removeAttributes |
Удаляет набор атрибутов. |
void |
removeStyle |
Удаляет именованный стиль, ранее добавленный в документ. |
void |
removeStyleSheet |
Удаляет StyleSheet ss из таблиц стилей получателя. |
void |
setBase |
Задает базовый адрес. |
void |
setBaseFontSize |
Задает базовый размер шрифта; допустимые значения — от 1 до 7. |
void |
setBaseFontSize |
Задает базовый размер шрифта из переданной строки. |
Color |
stringToColor |
Преобразует строку с цветом, например "RED" или "#NNNNNN", в Color. |
AttributeSet |
translateHTMLToCSS |
Преобразует набор атрибутов HTML в эквивалентный набор атрибутов CSS. |
Методы, объявленные в классе StyleContext
addChangeListener, addStyle, getChangeListeners, getCompressionThreshold, getDefaultStyleContext, getEmptySet, getFont, getFontMetrics, getStaticAttribute, getStaticAttributeKey, getStyle, getStyleNames, readAttributes, readAttributeSet, reclaim, registerStaticAttributeKey, removeChangeListener, toString, writeAttributes, writeAttributeSet
Подробное описание конструкторов
StyleSheet
public StyleSheet()
Подробное описание методов
getRule
public Style getRule(HTML.Tag t, Element e)
- Параметры:
-
t— тип для преобразования в визуальные атрибуты -
e— элемент, представляющий тег; элемент можно использовать для определения вложенности в случаях, когда атрибуты различаются при вложении в другие элементы - Возвращает:
- набор атрибутов CSS для отображения тега
getRule
public Style getRule(String selector)
selector — это строка с именами элементов, разделёнными пробелами. Например, selector может иметь значение 'html body tr td''Атрибуты возвращённого Style будут изменяться при добавлении и удалении правил. То есть, если запросить правило с селектором "table p", а затем добавить новое правило с селектором "p", возвращённый Style будет содержать новые атрибуты из правила "p".
- Параметры:
-
selector— строка с именами элементов, разделёнными пробелами. - Возвращает:
- правило, которое лучше всего соответствует селектору.
addRule
public void addRule(String rule)
- Параметры:
-
rule— набор правил
getDeclaration
public AttributeSet getDeclaration(String decl)
- Параметры:
-
decl— объявление CSS - Возвращает:
- набор атрибутов, представляющий объявление CSS.
loadRules
public void loadRules(Reader in, URL ref) throws IOException
- Параметры:
-
in— поток для чтения грамматики CSS -
ref— URL-адрес ссылки. Это значение представляет местоположение потока и может быть null. Все относительные URL-адреса, указанные в потоке, будут интерпретироваться относительно этого параметра. - Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода.
getViewAttributes
public AttributeSet getViewAttributes(View v)
- Параметры:
-
v— представление - Возвращает:
- набор атрибутов
removeStyle
public void removeStyle(String nm)
- Переопределяет:
-
removeStyleв классеStyleContext - Параметры:
-
nm— имя удаляемого стиля
addStyleSheet
public void addStyleSheet(StyleSheet ss)
ss к правилам данного объекта. Правила ss's имеют приоритет над правилами всех ранее добавленных таблиц стилей. Добавленная таблица StyleSheet никогда не переопределяет правила принимающей таблицы стилей.- Параметры:
-
ss— таблица StyleSheet - С версии:
- 1.3
removeStyleSheet
public void removeStyleSheet(StyleSheet ss)
ss из списка таблиц стилей данного объекта.- Параметры:
-
ss— таблица StyleSheet - С версии:
- 1.3
getStyleSheets
public StyleSheet[] getStyleSheets()
- Возвращает:
- массив таблиц StyleSheet.
- С версии:
- 1.3
importStyleSheet
public void importStyleSheet(URL url)
url. Полученные правила непосредственно добавляются к правилам данного объекта. Если вы не хотите включать правила в данный объект, создайте новую таблицу StyleSheet и свяжите её с помощью addStyleSheet.- Параметры:
-
url— URL-адрес - С версии:
- 1.3
setBase
public void setBase(URL base)
base.- Параметры:
-
base— базовый URL. - С версии:
- 1.3
getBase
public URL getBase()
- Возвращает:
- базовый URL.
- С версии:
- 1.3
addCSSAttribute
public void addCSSAttribute(MutableAttributeSet attr, CSS.Attribute key, String value)
- Параметры:
-
attr— набор атрибутов -
key— свойство CSS -
value— значение атрибута HTML - С версии:
- 1.3
addCSSAttributeFromHTML
public boolean addCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key, String value)
- Параметры:
-
attr— набор атрибутов -
key— свойство CSS -
value— значение атрибута HTML - Возвращает:
-
true, если атрибут HTMLvalueможно преобразовать в атрибут CSS, и false в противном случае. - С версии:
- 1.3
translateHTMLToCSS
public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
- Параметры:
-
htmlAttrSet— AttributeSet, содержащий атрибуты HTML. - Возвращает:
- набор атрибутов CSS.
addAttribute
public AttributeSet addAttribute(AttributeSet old, Object key, Object value)
- Определено в:
-
addAttributeв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
addAttributeв классеStyleContext - Параметры:
-
old— исходный набор атрибутов -
key— ключ атрибута, не равный null -
value— значение атрибута - Возвращает:
- обновлённый набор атрибутов
- См. также:
addAttributes
public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
- Определено в:
-
addAttributesв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
addAttributesв классеStyleContext - Параметры:
-
old— исходный набор атрибутов -
attr— добавляемые атрибуты - Возвращает:
- обновлённый набор атрибутов
- См. также:
removeAttribute
public AttributeSet removeAttribute(AttributeSet old, Object key)
- Определено в:
-
removeAttributeв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
removeAttributeв классеStyleContext - Параметры:
-
old— исходный набор атрибутов -
key— имя атрибута, не равное null - Возвращает:
- обновлённый набор атрибутов
- См. также:
removeAttributes
public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
- Определено в:
-
removeAttributesв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
removeAttributesв классеStyleContext - Параметры:
-
old— исходный набор атрибутов -
names— имена атрибутов - Возвращает:
- обновлённый набор атрибутов
- См. также:
removeAttributes
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
- Определено в:
-
removeAttributesв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
removeAttributesв классеStyleContext - Параметры:
-
old— исходный набор атрибутов -
attrs— атрибуты - Возвращает:
- обновлённый набор атрибутов
- См. также:
createSmallAttributeSet
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
- Переопределяет:
-
createSmallAttributeSetв классеStyleContext - Параметры:
-
a— набор атрибутов для представления в компактной форме. - Возвращает:
- компактный набор атрибутов, который может использоваться совместно
createLargeAttributeSet
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
- Переопределяет:
-
createLargeAttributeSetв классеStyleContext - Параметры:
-
a— набор атрибутов для представления в расширенной форме. - Возвращает:
- большой набор атрибутов, в котором экономия времени достигается за счёт увеличения занимаемого пространства
getFont
public Font getFont(AttributeSet a)
- Переопределяет:
-
getFontв классеStyleContext - Параметры:
-
a— набор атрибутов - Возвращает:
- шрифт
getForeground
public Color getForeground(AttributeSet a)
- Переопределяет:
-
getForegroundв классеStyleContext - Параметры:
-
a— набор атрибутов - Возвращает:
- цвет
getBackground
public Color getBackground(AttributeSet a)
- Переопределяет:
-
getBackgroundв классеStyleContext - Параметры:
-
a— набор атрибутов - Возвращает:
- цвет
getBoxPainter
public StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
- Параметры:
-
a— набор атрибутов CSS - Возвращает:
- форматировщик блоков.
getListPainter
public StyleSheet.ListPainter getListPainter(AttributeSet a)
- Параметры:
-
a— набор атрибутов CSS - Возвращает:
- форматировщик списков.
setBaseFontSize
public void setBaseFontSize(int sz)
- Параметры:
-
sz— размер шрифта.
setBaseFontSize
public void setBaseFontSize(String size)
- Параметры:
-
size— размер шрифта.
getIndexOfSize
public static int getIndexOfSize(float pt)
- Параметры:
-
pt— размер в пунктах - Возвращает:
- индекс модели размеров HTML/CSS.
getPointSize
public float getPointSize(int index)
- Параметры:
-
index— индекс размера - Возвращает:
- значение размера в пунктах.
getPointSize
public float getPointSize(String size)
- Параметры:
-
size— строка CSS, описывающая размер шрифта - Возвращает:
- значение размера в пунктах.
stringToColor
public Color stringToColor(String string)
- Параметры:
-
string— строка с цветом, например "RED" или "#NNNNNN" - Возвращает:
- цвет
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/html/StyleSheet.html