Я пытаюсь создать простой редактор WYSIWYG, который позволит пользователям выделять текст и выделять его жирным шрифтом / подчеркиванием / курсивом. В настоящее время пользователь может выбрать текст, щелкнуть его правой кнопкой мыши и выбрать жирный шрифт во всплывающем меню, которое в итоге применяет стиль жирного шрифта к выделенному тексту следующим образом:
this.getStyledDocument().setCharacterAttributes(this.getSelectionStart(), this.getSelectionEnd()-this.getSelectionStart(), boldStyle, false);
Жирный стиль настроен так:
boldStyle = this.addStyle("Bold", null);
StyleConstants.setBold(boldStyle, true);
Что я хотел бы знать, так это то, можно ли получить стиль для выделенного в данный момент текста, чтобы, если пользователь попытается «выделить» некоторый текст, уже выделенный жирным шрифтом, я смог бы обнаружить это и написать код для Отменить выделение жирным шрифтом этого текста вместо простого применения к нему полужирного стиля?
Что-то вроде:
if(!this.getStyledDocument().getStyleForSelection(this.getSelectionStart(), this.getSelectionEnd()-this.getSelectionStart()).isBold()){
//do bold
}
else{
//un-bold
}
Была бы мечта, но у меня нет на это надежды. На самом деле я надеюсь, что мне либо скажут, что я делаю это неправильно, и покажем «путь», либо указываем в направлении обходного метода достижения этого.
Большое спасибо за ваше время.