Получение буквы и цвета шрифта из стилизованного документа / текстовой панели
В последнее время я использую константы стилей, стилизованные документы и текстовую панель. Я знаю, что вы можете редактировать часть текста, которую вы выделите / выделите, показывая ее в коде ниже
StyledDocument doc = this.tpText.getStyledDocument();
Style style = this.tpText.addStyle("stylish", null);
StyleConstants.setForeground(style, color.BLACK);
StyleConstants.setFontFamily(style, "Arial");
doc.setCharacterAttributes(this.tpText.getSelectionStart(), this.tpText.getSelectionEnd() - this.tpText.getSelectionStart(), this.tpText.getStyle("stylish"), true);//This is the piece of code (last line) that will set all the attributes to the highlited text.
Например, если пользователь выделяет / выбирает "o worl" в "hello world", просто "o worl" изменит цвет на черный, а буквой шрифта будет Arial.
Теперь мой вопрос: как вы можете получить букву и цвет шрифта из выделенного / выделенного текста? Я хочу знать, как я могу сохранить это в отдельных переменных (один для цвета и другой для буквы шрифта).
1 ответ
Хорошо, после дополнительных исследований я узнал ответ.
doc = this.tpText.getStyledDocument();
Element element = doc.getCharacterElement(this.tpText.getSelectionStart());
AttributeSet as = element.getAttributes();
colour = StyleConstants.getForeground(as);
Единственный недостаток этого метода стиля констант заключается в том, что он распознает только первый символьный атрибут и перезаписывает / игнорирует остальные. Может быть, с помощью цикла я могу это сделать.