0

我正在尝试使用将文本输出为 HTML 的 JTextPane 创建一个文本编辑器。我想包括粗体、颜色和对齐文本的选项。我在更改混合粗体和非粗体的文本选择的颜色时遇到问题。例如,如果我在编辑器中有文本“粗体文本不是粗体文本”并且我突出显示两个单词并尝试更改文本的颜色,它会更改颜色并使所有文本变为粗体,而不是留下第二个字不加粗。所以我不确定这个问题来自哪里,是否与 setCharacterAttributes 有关,或者是否将文本输出为 html 存在问题。这是我的一些使文本变为粗体的代码:

    MutableAttributeSet attrs = pane.getInputAttributes();
    StyleConstants.setBold(attrs, bold); 
    pane.getStyledDocument().setCharacterAttributes(p.getSelectionStart(),len,attrs,false);

这是我更改文本颜色之前和之后 html 输出的示例。这只是身体标签内部的内容

之前: 粗体文本不是粗体文本

将颜色更改为红色后: 粗体文本不是粗体文本

它与选择的第一个单词是否为粗体有关。如果我做了同样的例子,但第二部分是粗体而第一部分不是粗体,那么它工作正常。因此,它与文本选择的开头为粗体时有关。

4

2 回答 2

2

这是我的一些使文本变为粗体的代码:

不知道如何使用该代码的上下文。但我想说一个更好的方法是只使用StyledEditorKit.

阅读有关文本组件功能的 Swing 教程,了解编辑器的简单示例。该示例使用 JTextPane,但创建菜单项的概念是相同的。

于 2013-09-18T16:43:28.223 回答
2

是否有一种操作可以让您“取消加粗”文本?

创建和应用一个合适SimpleAttributeSet的,例如normal,在这里看到的。

图片

于 2013-09-18T18:55:06.910 回答