是否可以在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"));
也许您现在可以解决此问题...