Класс 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. Обратитесь к javadoc класса CSS, чтобы увидеть, какие свойства мы поддерживаем. Две основные связанные с парсингом CSS концепции, которые мы в настоящее время не поддерживаем, это псевдоселекторы, такие как A:link { color: red }, и модификатор important.
- Примечание по реализации:
- Эта реализация в настоящее время неполна. Она может быть заменена альтернативными реализациями, которые являются полными. Будущие версии этого класса обеспечат лучшую поддержку CSS.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
StyleSheet.BoxPainter |
Класс для выполнения некоторых задач форматирования CSS. |
static final class |
StyleSheet.ListPainter |
Класс для выполнения некоторых задач форматирования списков CSS. |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.StyleContext
StyleContext.NamedStyle, StyleContext.SmallAttributeSet
Краткое описание полей
Поля, объявленные в классе javax.swing.text.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() |
Возвращает массив связанных StyleSheets. |
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", в цвет. |
AttributeSet |
translateHTMLToCSS |
Преобразует набор атрибутов HTML в эквивалентный набор атрибутов CSS. |
Методы, объявленные в классе javax.swing.text.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 - это разделенный пробелами String имён элементов. Например, selector может быть 'html body tr td'.Атрибуты возвращаемого Style будут изменяться по мере добавления и удаления правил. То есть, если вы запросите правило с селектором "table p", и будет добавлено новое правило с селектором "p", возвращаемый Style будет включать новые атрибуты из правила "p".
- Параметры:
-
selector- разделенный пробелами String имён элементов. - Возвращает:
- правило, которое наилучшим образом соответствует селектору.
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 никогда не переопределит правила получающего StyleSheet.- Параметры:
-
ss- StyleSheet - С:
- 1.3
removeStyleSheet
public void removeStyleSheet(StyleSheet ss)
ss из получателя.- Параметры:
-
ss- StyleSheet - С:
- 1.3
getStyleSheets
public StyleSheet[] getStyleSheets()
- Возвращает:
- массив StyleSheets.
- С:
- 1.3
importStyleSheet
public void importStyleSheet(URL url)
url. Результирующие правила добавляются непосредственно к получателю. Если вы не хотите, чтобы правила стали частью получателя, создайте новый StyleSheet и используйте addStyleSheet для его связывания.- Параметры:
-
url- url - С:
- 1.3
setBase
public void setBase(URL base)
base. - Параметры:
-
base- база. - С:
- 1.3
getBase
public URL getBase()
- Возвращает:
- базу.
- С:
- 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, 2023, 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/21/docs/api/java.desktop/javax/swing/text/html/StyleSheet.html