Класс 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> задаёт для тела документа красный фон. Но если HTML-файл также содержит правило CSS body { background: blue }, становится менее понятно, каким должен быть цвет фона тела документа. В текущей реализации визуальным атрибутам, заданным элементом, отдается наивысший приоритет: они всегда проверяются раньше любых стилей. Поэтому в предыдущем примере фон будет красным, поскольку элемент body задаёт красный цвет фона.
Как уже упоминалось, поддерживается CSS. Полная спецификация CSS не поддерживается. Список поддерживаемых свойств приведён в документации класса 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 | Модификатор и тип | Класс | Описание |
|---|---|---|
class |
StyleContext.NamedStyle |
Набор атрибутов, обычно используемый для представления стилей символов и абзацев. |
class |
StyleContext.SmallAttributeSet |
Этот класс хранит небольшое количество атрибутов в массиве. |
Краткое описание полей
Поля, объявленные в классе StyleContext
DEFAULT_STYLE | Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
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, представляющий это объявление. |
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 | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addChangeListener |
Добавляет слушателя для отслеживания добавления и удаления стилей. |
Style |
addStyle |
Добавляет новый стиль в иерархию стилей. |
ChangeListener[] |
getChangeListeners() |
Возвращает массив всех объектов ChangeListener, добавленных в этот StyleContext с помощью addChangeListener(). |
protected int |
getCompressionThreshold() |
Возвращает максимальное количество пар ключ/значение, которые следует попытаться сжать в уникальные неизменяемые наборы. |
static final StyleContext |
getDefaultStyleContext() |
Возвращает контекст атрибутов по умолчанию, общий для всех документов, которые не определяют и не предоставляют собственный контекст. |
AttributeSet |
getEmptySet() |
Получает пустой AttributeSet. |
Font |
getFont |
Создаёт новый шрифт. |
FontMetrics |
getFontMetrics |
Возвращает метрики шрифта. |
static Object |
getStaticAttribute |
Возвращает объект, ранее зарегистрированный с помощью registerStaticAttributeKey. |
static Object |
getStaticAttributeKey |
Возвращает строку, с которой будет зарегистрирован key. |
Style |
getStyle |
Получает именованный стиль, ранее добавленный в документ |
Enumeration |
getStyleNames() |
Получает имена определённых стилей. |
void |
readAttributes |
Обработка чтения атрибутов, специфичная для контекста |
static void |
readAttributeSet |
Считывает набор атрибутов из указанного входного потока объектов, ранее записанный с помощью writeAttributeSet. |
void |
reclaim |
Возвращает набор, который больше не нужен реализации MutableAttributeSet. |
static void |
registerStaticAttributeKey |
Регистрирует объект как статический объект, используемый в качестве ключа в наборах атрибутов. |
void |
removeChangeListener |
Удаляет слушателя, отслеживавшего добавление и удаление стилей. |
String |
toString() |
Преобразует StyleContext в строку. |
void |
writeAttributes |
Обработка записи атрибутов, специфичная для контекста |
static void |
writeAttributeSet |
Записывает набор атрибутов в указанный поток объектов для сериализации. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и может быть удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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.