Получить компонент из JTextPane через javax.swing.text.Element?

Я используюJTextPane для отображения символов и символов, где последние представлены заказным нарисованнымJComponents, Например, текстовая панель может показывать что-то вроде этого:

Я пережил обширные проблемы сPositions а такжеDocumentListeners управлять содержимым моей текстовой панели, но я продолжал вызывать больше проблем, чем решал. Вот почему я окончательно решил, что мои проблемы, вероятно, связаны с ошибкой дизайна с моей стороны, поэтому я решил посмотреть, не смогу ли я добраться до своих компонентов через текстовую панель.

Поиск по документации и исходному кодуAbstractDocument и другие связанные классы, я нашел интерфейсjavax.swing.text.Element, Я тогда позволю своему приложению выводить

for(int i = 0; i < textPane.getDocument().getLength(); i++) {
    System.out.println(((StyledDocument) textPane.getDocument()).getCharacterElement(i));
}

который дал мне:

LeafElement (содержание) 0,4

LeafElement (содержание) 0,4

LeafElement (содержание) 0,4

LeafElement (содержание) 0,4

LeafElement (компонент) 4,5

LeafElement (содержание) 5,9

LeafElement (содержание) 5,9

LeafElement (содержание) 5,9

LeafElement (содержание) 5,9

LeafElement (компонент) 9,10

Видя, чтоLeafElements&nbsp;что у меня действительно есть какая-то информация о том, что отображается в какой позиции вDocumentЯ подумал, что должно быть возможно получить фактическое содержание в этой позиции. Потратив еще полчаса на то, как получить контент, который представляет каждый элемент, я сдался и решил опубликовать здесь свой вопрос, надеясь, что некоторые из вас могут знать, как этого добиться !?

Я видел этовопрос&nbsp;где кто-то пытается получить доступ к компонентам черезtextPane.getComponents(), который возвращает массив компонентов с точным количеством компонентов, фактически содержащихся вJTextPane, но они все типаjavax.swing.text.ComponentView$Invalidatorчто, очевидно, бесполезно для меня. Может быть, я просто не вижу, как правильно продолжить отсюда, потому что приведение к исходному типу моего символа не работает.

ТЛ; др

Как мне получитьJComponent, который находится внутри текстаJTextPane, а его позиция из текстовой панели?