我的StringBuffer
设置为JTextArea
。现在我希望StringBuffer
中的部分字符串根据某些条件加下划线如何做到?
让我们说我需要以4.00的价格显示购买苹果,但苹果的文字强调。
答案 0 :(得分:2)
使用JTextPane
。它默认支持自动换行,您可以设置任何文本的属性。
JTextPane textPane = new JTextPane();
textPane.setText( "one\ntwo\nthree\nfour\nfive\nsix\nseven\neight" );
StyledDocument doc = textPane.getStyledDocument();
// Define a keyword attribute
SimpleAttributeSet keyWord = new SimpleAttributeSet();
StyleConstants.setForeground(keyWord, Color.RED);
StyleConstants.setBackground(keyWord, Color.YELLOW);
StyleConstants.setUnderline(keyWord, Boolean.TRUE );
StyleConstants.setBold(keyWord, true);
// Change attributes on some text
doc.setCharacterAttributes(20, 4, keyWord, false);
// Add some text
try
{
doc.insertString(0, "Start of text\n", keyWord );
}
catch(Exception e) {}
您还可以创建操作以更改任何所选文本的属性。阅读Text Component Features上Swing教程中的部分,了解更多信息和工作示例。