Spec-Zone.ru › OpenJDK 17

Класс StyleSheet

java.lang.Object
javax.swing.text.StyleContext
javax.swing.text.html.StyleSheet
Все реализуемые интерфейсы:
Serializable, AbstractDocument.AttributeContext
public class StyleSheet extends StyleContext
Поддержка определения визуальных характеристик отображаемых HTML-представлений. StyleSheet используется для преобразования HTML-модели в визуальные характеристики. Это позволяет настраивать представления с помощью внешнего вида, отображать несколько представлений над одной моделью по-разному и т. д. Это можно рассматривать как хранилище правил CSS. Ключом для атрибутов CSS является объект типа CSS.Attribute. Тип значения зависит от реализации StyleSheet, но метод 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 old, Object key, Object value)
Добавляет атрибут в заданный набор и возвращает новый репрезентативный набор.
AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
Добавляет набор атрибутов к элементу.
void addCSSAttribute(MutableAttributeSet attr, CSS.Attribute key, String value)
Добавляет атрибут CSS в заданный набор.
boolean addCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key, String value)
Добавляет атрибут CSS в заданный набор.
void addRule(String rule)
Добавляет набор правил в лист.
void addStyleSheet(StyleSheet ss)
Добавляет правила из StyleSheet ss к правилам получателя.
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
Создаёт большой набор атрибутов, который должен обеспечить баланс между объёмом памяти и скоростью.
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
Создаёт компактный набор атрибутов, который может быть совместно использован.
Color getBackground(AttributeSet a)
Преобразует набор атрибутов в спецификацию цвета фона.
URL getBase()
Возвращает базу.
StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
Получает форматировщик блоков для заданного набора атрибутов CSS.
AttributeSet getDeclaration(String decl)
Преобразует объявление CSS в AttributeSet, представляющий объявление CSS.
Font getFont(AttributeSet a)
Получает шрифт для использования с заданным набором атрибутов.
Color getForeground(AttributeSet a)
Преобразует набор атрибутов в спецификацию цвета переднего плана.
static int getIndexOfSize(float pt)
Возвращает индекс модели размеров HTML/CSS.
StyleSheet.ListPainter getListPainter(AttributeSet a)
Получает форматировщик списков для заданного набора атрибутов CSS.
float getPointSize(int index)
Возвращает размер шрифта, заданный индексом размера.
float getPointSize(String size)
Принимает строку, такую как "+2", "-2" или "2", и возвращает значение размера шрифта.
Style getRule(String selector)
Получает правило, которое лучше всего соответствует селектору, заданному в строковом виде.
Style getRule(HTML.Tag t, Element e)
Получает стиль для рендеринга заданного типа тега HTML.
StyleSheet[] getStyleSheets()
Возвращает массив связанных StyleSheet.
AttributeSet getViewAttributes(View v)
Получает набор атрибутов для использования в представлении для отображения.
void importStyleSheet(URL url)
Импортирует таблицу стилей из url.
void loadRules(Reader in, URL ref)
Загружает набор правил, заданных в грамматике CSS1.
AttributeSet removeAttribute(AttributeSet old, Object key)
Удаляет атрибут из набора.
AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
Удаляет набор атрибутов для элемента.
AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
Удаляет набор атрибутов.
void removeStyle(String nm)
Удаляет ранее добавленный в документ именованный стиль.
void removeStyleSheet(StyleSheet ss)
Удаляет StyleSheet ss из тех, что принадлежат получателю.
void setBase(URL base)
Устанавливает базу.
void setBaseFontSize(int sz)
Устанавливает базовый размер шрифта, допустимые значения находятся в диапазоне от 1 до 7.
void setBaseFontSize(String size)
Устанавливает базовый размер шрифта из переданной строки.
Color stringToColor(String string)
Преобразует строку цвета, например "RED" или "#NNNNNN", в Color.
AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
Преобразует набор атрибутов 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

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

StyleSheet

public StyleSheet()
Создать StyleSheet

Подробное описание методов

getRule

public Style getRule(HTML.Tag t, Element e)
Получает стиль для рендеринга заданного типа HTML-тега. Переданный элемент представляет тег и может использоваться для определения вложенности в тех случаях, когда атрибуты будут отличаться при вложенности внутри других элементов.
Параметры:
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)
Добавляет набор правил в лист. Правила должны быть в валидном формате CSS. Обычно это вызывается в результате парсинга тега <style>.
Параметры:
rule - набор правил

getDeclaration

public AttributeSet getDeclaration(String decl)
Преобразует объявление CSS в AttributeSet, представляющий объявление CSS. Обычно это вызывается в результате столкновения с атрибутом стиля HTML.
Параметры:
decl - объявление CSS
Возвращает:
набор атрибутов, представляющих объявление CSS.

loadRules

public void loadRules(Reader in, URL ref) throws IOException
Загружает набор правил, заданных в грамматике CSS1. Если есть коллизии с существующими правилами, новое правило будет иметь приоритет.
Параметры:
in - поток для чтения грамматики CSS
ref - ссылка на URL. Это значение представляет местоположение потока и может быть null. Все относительные URL, указанные в потоке, будут относиться к этому параметру.
Исключения:
IOException - если произошла ошибка ввода-вывода.

getViewAttributes

public AttributeSet getViewAttributes(View v)
Получает набор атрибутов, используемых в представлении для отображения. Это, по сути, набор атрибутов, которые можно использовать для View.getAttributes.
Параметры:
v - представление
Возвращает:
набор атрибутов

removeStyle

public void removeStyle(String nm)
Удаляет именованный стиль, ранее добавленный в документ.
Переопределяет:
removeStyle в классе StyleContext
Параметры:
nm - имя стиля для удаления

addStyleSheet

public void addStyleSheet(StyleSheet ss)
Добавляет правила из StyleSheet ss к правилам получателя. ss's правила будут переопределять правила любых ранее добавленных таблиц стилей. Добавляемый StyleSheet никогда не переопределит правила получающего StyleSheet.
Параметры:
ss - StyleSheet
С тех пор, как:
1.3

removeStyleSheet

public void removeStyleSheet(StyleSheet ss)
Удаляет StyleSheet ss из получателя.
Параметры:
ss - StyleSheet
С тех пор, как:
1.3

getStyleSheets

public StyleSheet[] getStyleSheets()
Возвращает массив связанных StyleSheets. Возвращает null, если связанных StyleSheets нет.
Возвращает:
массив 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)
Добавляет атрибут CSS в заданный набор.
Параметры:
attr - набор атрибутов
key - свойство CSS
value - значение атрибута HTML
С тех пор, как:
1.3

addCSSAttributeFromHTML

public boolean addCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key, String value)
Добавляет атрибут CSS в заданный набор.
Параметры:
attr - набор атрибутов
key - свойство CSS
value - значение атрибута HTML
Возвращает:
true если атрибут HTML value может быть преобразован в атрибут CSS, иначе false.
С тех пор, как:
1.3

translateHTMLToCSS

public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
Преобразует набор HTML-атрибутов в эквивалентный набор CSS-атрибутов.
Параметры:
htmlAttrSet - AttributeSet, содержащий HTML-атрибуты.
Возвращает:
набор CSS-атрибутов.

addAttribute

public AttributeSet addAttribute(AttributeSet old, Object key, Object value)
Добавляет атрибут в заданный набор и возвращает новый репрезентативный набор. Это переопределено для преобразования атрибутов StyleConstant в CSS перед передачей в поведение суперкласса. Атрибут StyleConstants не имеет соответствующей CSS-записи, атрибут StyleConstants хранится (но, скорее всего, не будет использован).
Определено в:
addAttribute в интерфейсе AbstractDocument.AttributeContext
Переопределяет:
addAttribute в классе StyleContext
Параметры:
old - старый набор атрибутов
key - ключ атрибута (не null)
value - значение атрибута
Возвращает:
обновленный набор атрибутов
См. также:
  • MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

addAttributes

public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
Добавляет набор атрибутов к элементу. Если какие-либо из этих атрибутов являются атрибутами StyleConstants, они будут преобразованы в CSS перед передачей в поведение суперкласса.
Определено в:
addAttributes в интерфейсе AbstractDocument.AttributeContext
Переопределяет:
addAttributes в классе StyleContext
Параметры:
old - старый набор атрибутов
attr - добавляемые атрибуты
Возвращает:
обновленный набор атрибутов
См. также:
  • MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

removeAttribute

public AttributeSet removeAttribute(AttributeSet old, Object key)
Удаляет атрибут из набора. Если атрибут является атрибутом StyleConstants, запрос будет преобразован в атрибут CSS перед передачей в поведение суперкласса.
Определено в:
removeAttribute в интерфейсе AbstractDocument.AttributeContext
Переопределяет:
removeAttribute в классе StyleContext
Параметры:
old - старый набор атрибутов
key - имя атрибута (не null)
Возвращает:
обновленный набор атрибутов
См. также:
  • MutableAttributeSet.removeAttribute(java.lang.Object)
END_OF_DOCUMENT_MARKER

удалитьАтрибуты

public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
Удаляет набор атрибутов для элемента. Если какой-либо из атрибутов является атрибутом StyleConstants, запрос будет преобразован в атрибут CSS перед передачей в метод суперкласса.
Указано в:
removeAttributes в интерфейсе AbstractDocument.AttributeContext
Переопределяет:
removeAttributes в классе StyleContext
Параметры:
old - старый набор атрибутов
names - имена атрибутов
Возвращает:
обновленный набор атрибутов
См. также:
  • MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)

удалитьАтрибуты

public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
Удаляет набор атрибутов. Если какой-либо из атрибутов является атрибутом StyleConstants, запрос будет преобразован в атрибут CSS перед передачей в метод суперкласса.
Указано в:
removeAttributes в интерфейсе AbstractDocument.AttributeContext
Переопределяет:
removeAttributes в классе StyleContext
Параметры:
old - старый набор атрибутов
attrs - атрибуты
Возвращает:
обновленный набор атрибутов
См. также:
  • MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)

создатьМалыйНаборАтрибутов

protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
Создает компактный набор атрибутов, который может быть общим. Это точка входа для подклассов, которые хотят изменить поведение SmallAttributeSet. Это можно переопределить, чтобы вернуть AttributeSet, предоставляющий некоторое преобразование атрибутов.
Переопределяет:
createSmallAttributeSet в классе StyleContext
Параметры:
a - набор атрибутов, который должен быть представлен в компактной форме.
Возвращает:
компактный набор атрибутов, который может быть общим

создатьБольшойНаборАтрибутов

protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
Создает большой набор атрибутов, который должен использовать пространство в обмен на время. Этот набор не будет общим. Это точка входа для подклассов, которые хотят изменить поведение более крупного формата хранения атрибутов (по умолчанию — SimpleAttributeSet). Это можно переопределить, чтобы вернуть MutableAttributeSet, предоставляющий некоторое преобразование атрибутов.
Переопределяет:
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)
Возвращает рисовальщик рамки для данного набора CSS-атрибутов.
Параметры:
a - набор CSS-атрибутов
Возвращает:
рисовальщик рамки.

получитьРисовальщикСписка

public StyleSheet.ListPainter getListPainter(AttributeSet a)
Возвращает рисовальщик списка для данного набора CSS-атрибутов.
Параметры:
a - набор CSS-атрибутов
Возвращает:
рисовальщик списка.

установитьБазовыйРазмерШрифта

public void setBaseFontSize(int sz)
Устанавливает базовый размер шрифта, допустимые значения от 1 до 7.
Параметры:
sz - размер шрифта.

установитьБазовыйРазмерШрифта

public void setBaseFontSize(String size)
Устанавливает базовый размер шрифта из переданной строки. Строка может указывать конкретный размер шрифта (допустимые значения от 1 до 7) или относительный размер шрифта, например, +1 или -2.
Параметры:
size - размер шрифта.

получитьИндексРазмера

public static int getIndexOfSize(float pt)
Возвращает индекс модели размера HTML/CSS.
Параметры:
pt - размер в пунктах
Возвращает:
индекс модели размера HTML/CSS.

получитьРазмерВПунктах

public float getPointSize(int index)
Возвращает размер в пунктах, заданный индексом размера.
Параметры:
index - индекс размера
Возвращает:
значение размера в пунктах.

получитьРазмерВПунктах

public float getPointSize(String size)
Принимает строку, такую как "+2", "-2" или "2", и возвращает значение размера в пунктах.
Параметры:
size - CSS-строка, описывающая размер шрифта
Возвращает:
значение размера в пунктах.

строкаВЦвет

public Color stringToColor(String string)
Преобразует строку цвета, такую как "RED" или "#NNNNNN", в объект Color. Примечание: Это преобразование выполняется только для строк HTML3.2 или строк длиной 7 символов; в противном случае возвращается null.
Параметры:
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API