Хорошо, вау. Сложный вопрос. Поэтому я не нашел способа получить стиль данного персонажа. Однако вы можете получить MutableAttributeSet для данного символа и затем проверить, находится ли стиль в этом наборе атрибутов.
Style s; //your style
Element run = styledDocument.getCharacterElement(
textPane.getSelectionStart() );
MutableAttributeSet curAttr =
( MutableAttributeSet )run.getAttributes();
boolean containsIt = curAttr.containsAttributes( s );
Одна проблема с получением стиля для диапазона символов заключается в том, что к этому диапазону может быть применено несколько стилей (например, вы можете выбрать текст, где некоторые выделены жирным шрифтом, а некоторые нет).
Чтобы обновить выделенный текст, вы можете:
Style s; //your style
JTextPane textPane; //your textpane
textPane.setCharacterAttributes( s, false );
О, и похоже, что функция getLogicalStyle не работает, потому что она возвращает стиль по умолчанию (или, возможно, просто стиль) для абзаца, который содержит p, а не стиль символа в p.