Как проверить, содержит ли определенный индекс в jEditorPane символ, который выделен жирным шрифтом, курсивом или подчеркнут?
Я сделал программу, которая загружает текстовый документ в jEditorPane. Часть текста в документе выделена жирным шрифтом, курсивом или подчеркнута, и я хочу знать, как проверить, содержит ли определенный индекс в тексте один из этих трех атрибутов. Например, если я сохраню первый символ текста в переменной следующим образом:
char chr = jEditorPane1.getDocument().getText(0, 1).charAt(0);
Как мне тогда проверить, был ли символ в chr выделен жирным шрифтом, курсивом или подчеркнут?
1 ответ
Решение
StyledDocument doc = (StyledDocument)jEditorPane1.getDocument()
Element textElem = doc.getCharacterElement(offset);
StyleConstants.isBold(textElem.getAttributes());
StyleConstants.isItalic(textElem.getAttributes());
В качестве альтернативы, если каретка расположена в смещении, вы можете получить InputAttributes из набора.
AttributeSet attrs = ((StyledEditorKit)jEditorPane1.getEditorKit()).getInputAttributes();
StyleConstants.isBold(attrs);