Класс 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 class |
StyleSheet.BoxPainter |
Класс для выполнения некоторых задач форматирования CSS. |
static 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() |
Возвращает массив связанных StyleSheet. |
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. |
Методы, объявленные в классе 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 — это строка имён элементов, разделённых пробелами. Например, selector может быть 'html body tr td'.Атрибуты возвращаемого стиля будут меняться по мере добавления и удаления правил. То есть, если вы запросите правило с селектором "table p", а затем будет добавлено новое правило с селектором "p", возвращаемый стиль будет включать новые атрибуты из правила "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 никогда не переопределит правила получающего 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) - Возвращает:
- обновленный набор атрибутов
- См. также:
удалитьАтрибуты
public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
- Указано в:
-
removeAttributesв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
removeAttributesв классеStyleContext - Параметры:
-
old- старый набор атрибутов -
names- имена атрибутов - Возвращает:
- обновленный набор атрибутов
- См. также:
удалитьАтрибуты
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
- Указано в:
-
removeAttributesв интерфейсеAbstractDocument.AttributeContext - Переопределяет:
-
removeAttributesв классеStyleContext - Параметры:
-
old- старый набор атрибутов -
attrs- атрибуты - Возвращает:
- обновленный набор атрибутов
- См. также:
создатьМалыйНаборАтрибутов
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
- Переопределяет:
-
createSmallAttributeSetв классеStyleContext - Параметры:
-
a- набор атрибутов, который должен быть представлен в компактной форме. - Возвращает:
- компактный набор атрибутов, который может быть общим
создатьБольшойНаборАтрибутов
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
- Переопределяет:
-
createLargeAttributeSetв классеStyleContext - Параметры:
-
a- набор атрибутов, который должен быть представлен в более крупной форме. - Возвращает:
- большой набор атрибутов, который должен использовать пространство в обмен на время
шрифт
public Font getFont(AttributeSet a)
- Переопределяет:
-
getFontв классеStyleContext - Параметры:
-
a- набор атрибутов - Возвращает:
- шрифт
получитьЦветТекста
public Color getForeground(AttributeSet a)
- Переопределяет:
-
getForegroundв классеStyleContext - Параметры:
-
a- набор атрибутов - Возвращает:
- цвет
получитьЦветФона
public Color getBackground(AttributeSet a)
- Переопределяет:
-
getBackgroundв классеStyleContext - Параметры:
-
a- набор атрибутов - Возвращает:
- цвет
получитьРисовальщикРамки
public StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
- Параметры:
-
a- набор CSS-атрибутов - Возвращает:
- рисовальщик рамки.
получитьРисовальщикСписка
public StyleSheet.ListPainter getListPainter(AttributeSet a)
- Параметры:
-
a- набор CSS-атрибутов - Возвращает:
- рисовальщик списка.
установитьБазовыйРазмерШрифта
public void setBaseFontSize(int sz)
- Параметры:
-
sz- размер шрифта.
установитьБазовыйРазмерШрифта
public void setBaseFontSize(String size)
- Параметры:
-
size- размер шрифта.
получитьИндексРазмера
public static int getIndexOfSize(float pt)
- Параметры:
-
pt- размер в пунктах - Возвращает:
- индекс модели размера HTML/CSS.
получитьРазмерВПунктах
public float getPointSize(int index)
- Параметры:
-
index- индекс размера - Возвращает:
- значение размера в пунктах.
получитьРазмерВПунктах
public float getPointSize(String size)
- Параметры:
-
size- CSS-строка, описывающая размер шрифта - Возвращает:
- значение размера в пунктах.
строкаВЦвет
public Color stringToColor(String string)
- Параметры:
-
string- строка цвета, например, "RED" или "#NNNNNN" - Возвращает:
- цвет
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/text/html/StyleSheet.html