我正在尝试使用 JTextPane 创建一个文本编辑器,将文本输出为 HTML。我想添加粗体、颜色和对齐文本的选项。我在更改粗体和非粗体混合的文本选择的颜色时遇到问题。例如,如果我在编辑器中有文本“粗体文本不是粗体文本”,并且我突出显示这两个单词并尝试更改文本的颜色,它会更改颜色并使所有文本粗体,而不是让第二个词不粗体。所以我不确定这个问题是从哪里来的,是否与 setCharacterAttributes 有关,或者是否是将文本输出为 html 的问题。这是我的一些使文本变为粗体的代码:
MutableAttributeSet attrs = pane.getInputAttributes();
StyleConstants.setBold(attrs, bold);
pane.getStyledDocument().setCharacterAttributes(p.getSelectionStart(),len,attrs,false);
下面是更改文本颜色之前和之后 html 输出的示例。这就是 body 标签内部的内容
之前: 粗体文本不是粗体文本
将颜色更改为红色后: 粗体文本不是粗体文本
并且与选择的第一个单词是否粗体有关。如果我做了相同的示例,但第二部分是粗体而第一部分不是粗体,那么它就可以正常工作。所以这与文本选择的开头何时为粗体有关。
最佳答案
here is some of my code that makes the text bold:
不知道如何使用该代码的上下文。但我想说,更好的方法是使用 StyledEditorKit
中找到的默认粗体操作。
阅读 Text Component Features 上的 Swing 教程一个简单的编辑器示例。该示例使用 JTextPane,但创建菜单项的概念是相同的。
关于java - 在 JTextPane 中将文本加粗并着色时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877688/