【发布时间】:2013-09-18 16:36:41
【问题描述】:
我正在尝试使用将文本输出为 HTML 的 JTextPane 创建一个文本编辑器。我想包括粗体、颜色和对齐文本的选项。我在更改混合粗体和非粗体的文本选择的颜色时遇到问题。例如,如果我在编辑器中有文本“bold text not bold text”并且我突出显示两个单词并尝试更改文本的颜色,它会更改颜色并使所有文本粗体,而不是让第二个单词不加粗。所以我不确定这个问题来自哪里,是否与 setCharacterAttributes 有关,或者是否将文本输出为 html 存在问题。这是我的一些使文本变粗的代码:
MutableAttributeSet attrs = pane.getInputAttributes();
StyleConstants.setBold(attrs, bold);
pane.getStyledDocument().setCharacterAttributes(p.getSelectionStart(),len,attrs,false);
下面是我更改文本颜色之前和之后 html 输出的示例。这只是body标签里面的内容
之前: 粗体不是粗体
颜色变为红色后: 粗体不是粗体
这与选择的第一个单词是否为粗体有关。如果我做了同样的例子,但第二部分是粗体而第一部分不是粗体,那么它工作正常。所以它与文本选择的开头是否为粗体有关。
【问题讨论】: