是否可以在Java Swing中更改段落的背景颜色?我尝试使用setParagraphAttributes方法(下面的代码)进行设置,但似乎不起作用。

    StyledDocument doc = textPanel.getStyledDocument();
    Style style = textPanel.addStyle("Hightlight background", null);
    StyleConstants.setBackground(style, Color.red);

    Style logicalStyle = textPanel.getLogicalStyle();
    doc.setParagraphAttributes(textPanel.getSelectionStart(), 1, textPanel.getStyle("Hightlight background"), true);
    textPanel.setLogicalStyle(logicalStyle);

最佳答案

更新:
我刚刚发现了一个名为Highlighter的类。我不认为您应该使用setbackground样式。请改用DefaultHighlighter类。

Highlighter h = textPanel.getHighlighter();
h.addHighlight(1, 10, new DefaultHighlighter.DefaultHighlightPainter(
            Color.red));

addHighlight方法的前两个参数只是您要突出显示的文本的开始索引和结束索引。您可以多次调用此方法以突出显示不连续的文本行。

旧答案:

我不知道为什么setParagraphAttributes方法似乎不起作用。但是这样做似乎可行。
    doc.insertString(0, "Hello World", textPanel.getStyle("Hightlight background"));

也许您现在可以解决此问题...

07-24 15:35