Какие HTML-теги поддерживаются в компонентах Swing?

Многие компоненты Swing поддерживают встроенный HTML, но я не могу найти официальную документацию по этому вопросу. (Все на страницах Sun о HTML, похоже, нацелено на JEditorPane)

Итак: Какие HTML-теги поддерживаются в компонентах Swing?

РЕДАКТИРОВАТЬ: Хотя я сказал, что мне не хватает "официальной документации", я также хотел бы любую "неофициальную" документацию.

5 ответов

Решение

Swing поддерживает HTML 3.2 (Wilbur), как сказал Software Monkey. Вы можете найти официальную документацию для этой устаревшей (1996 г.) версии HTML по адресу: http://www.w3.org/TR/REC-html32.html

Документация по Java 7 по этой теме: http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/package-summary.html

Хотя стоит отметить, что в нем явно не упоминается, что эта информация действительна для других компонентов Swing.

Я полагаю, что это узкое подмножество HTML 3.x, хотя я не помню, где я это читал.

Я не знаю точно, какие теги поддерживаются, но я бы посоветовал вам ограничить себя полужирным шрифтом / курсивом (или даже лучше сильным / их, если он их поддерживает) и тегами img. Все остальное может вызвать головную боль и, возможно, означает, что вы слишком много вкладываете в этот компонент.

Как отмечает @Mr.Napik в своем ответе, поддержка Swing HTML была основана на HTML 3.2, но поддерживает несколько дополнительных тегов (в частности, <span>). Конкретные поддерживаемые теги описаны вHTML.Tagдокументация .

Поддержка CSS также подробно описана вCSSдокументация .

На самом деле синтаксический анализатор HTML Javax Swing является синтаксическим анализатором, управляемым DTD. DTD по умолчанию называется html32.dtd, что означает, что он поддерживает большинство рекомендаций HTML 32.

Если вы хотите поддерживать больше тегов, вы должны расширить или переписать это DTD. Например, ниже в Swing HTML была добавлена ​​поддержка MathML:

Чтобы упростить эту задачу, был отправлен отчет об ошибке:Добавить ссылку или информацию о DTDBuilder в документацию.

Остерегаться :

  • Это первый шаг к поддержке вашего тега. Затем вам нужно было спроектировать его визуализацию и зарегистрировать его в фабрике представлений.
  • Swing Text HTML не предназначен для чтения HTML-документов из всемирной паутины.
  • Веб-браузеры не используют подход DTD.
  • Подход DTD имеет смысл, если вы хотите иметь строгий контроль над структурой вашего документа в проекте с возможностью экспорта во всемирную паутину, но без необходимости читать HTML-документы реального мира. DTD может застрять с искаженными документами.
  • Думайте о Swing HTML как о Wordpad, где базовой структурой документа является HTML.
Другие вопросы по тегам