Альтернативная структура документа в JTextPane?
Вопрос
В JTextPane с DefaultStyledDocument структура документа (иерархия объектов Element) заканчивается LeafElement, который охватывает весь символ заключающего абзаца. Есть ли способ настроить документ так, чтобы каждый листовой элемент представлял один символ?
(Предыстория: я пытаюсь реализовать собственную схему раскраски - что-то вроде раскраски синтаксиса в IDE. Использование setCharacterAttributes () для этой цели не вариант, в основном из-за соображений производительности.)
Решение
Вас может заинтересовать jsyntaxpane . Он использует PlainDocument вместо более ресурсоемкого StyledDocument. Лист для каждого персонажа потребует много памяти, поэтому вы можете использовать лист для каждого «жетона».
Вы также можете использовать StyledDocument, а затем обновить стиль для каждого токена в отдельной теме.