更改JTextPane中段落的背景颜色(Java Swing)
是否可以在Java Swing中更改段落的背景颜色?我试图使用setParagraphAttributes方法(下面的代码)来设置它,但似乎不起作用。更改JTextPane中段落的背景颜色(Java Swing)
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);
回答:
UPDATE: 我只是发现了一类名为Highlighter.I不认为你应该使用的setBackground风格。改为使用DefaultHighlighter类。
Highlighter h = textPanel.getHighlighter(); h.addHighlight(1, 10, new DefaultHighlighter.DefaultHighlightPainter(
Color.red));
addHighlight方法的前两个参数不过是要突出显示的文本的起始索引和结束索引。您可以多次调用此方法突出显示不连续的文本行。
OLD答:
我不知道为什么似乎没有了setParagraphAttributes方法工作。但这样做似乎有效。
doc.insertString(0, "Hello World", textPanel.getStyle("Hightlight background"));
也许你可以工作一个黑客解决这个现在...
回答:
我用:
SimpleAttributeSet background = new SimpleAttributeSet(); StyleConstants.setBackground(background, Color.RED);
然后你可以使用改变现有的属性:
doc.setParagraphAttributes(0, doc.getLength(), background, false);
或者用文字添加属性:
doc.insertString(doc.getLength(), "\nEnd of text", background);
回答:
简单的方法来改变选定的文本或段落的背景颜色。
//choose color from JColorchooser Color color = colorChooser.getColor();
//starting position of selected Text
int start = textPane.getSelectedStart();
// end position of the selected Text
int end = textPane.getSelectionEnd();
// style document of text pane where we change the background of the text
StyledDocument style = textPane.getStyledDocument();
// this old attribute set of selected Text;
AttributeSet oldSet = style.getCharacterElement(end-1).getAttributes();
// style context for creating new attribute set.
StyleContext sc = StyleContext.getDefaultStyleContext();
// new attribute set with new background color
AttributeSet s = sc.addAttribute(oldSet, StyleConstants.Background, color);
// set the Attribute set in the selected text
style.setCharacterAttributes(start, end- start, s, true);
以上是 更改JTextPane中段落的背景颜色(Java Swing) 的全部内容, 来源链接: utcz.com/qa/265923.html