java - JTextPane 中的粗体文本

标签 java swing jtextpane

我想要 html 标签和突出显示文本的按钮,我从
标签开始:

    @Override
    public void actionPerformed(ActionEvent e) {

        SimpleAttributeSet sas = new SimpleAttributeSet();
        StyleConstants.setBold(sas, true);
        insertText(getCaretPosition(), "<br>");
        helpTextPane.getStyledDocument().setCharacterAttributes(getInputTextLenght() - 4, getInputTextLenght(), sas, false);
        StyleConstants.setBold(sas, false);
    }

输出如下:enter image description here我完全不知道为什么每次 br 标签内的文本都是粗体:/我只想让 html br 标签粗体,而不是标签内的文本。

最佳答案

StyledDocument 的方法

public void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)

第二个参数应该是长度

所以尝试一下

setCharacterAttributes(getInputTextLenght() - 4, 4, sas, false);

关于java - JTextPane 中的粗体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496083/

相关文章:

java - 如何让JTextPane水平滚动

java - JTextPane 的样式是否具有类似控制台的格式?

java - 如何使用 Jackson 来反序列化这样的数组?

java - 如何使用Javamail发送简单的Email?

java - 如何Junit测试一个同步对象不能同时被两个线程访问?

java - DocumentFilter:为什么调用 replace() 而不是 insertString()?

java - "paintComponent()"重画

Java Swing MVC 结构

java - JTextPane 超出了 JDialog 的边界

java - 如何正确使用ChunkedStream