java - 在 JTextPane 中将文本加粗并着色时出错

标签 java html swing jtextpane

我正在尝试使用 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/

相关文章:

android - 在水平滑动 View 分页中将文本设置为按钮

java - 在两个标签之间以常规方式解析?

java - 调试期间无法查看来自 Java 源的变量值

java - 将视频帧添加到 JTabbedpane

javascript - 改变输入类型

html - 如何在 tailwind-css 中水平对齐图像

java - 在矩形内创建字符串

java - main(String[]) 上的 Swing Timer 在指定时间后退出程序

java - JavaFX 启动时的奇怪连接

javascript - 如何将一个时间间隔内触发的鼠标滚轮滚动事件的数量减少为单个事件