0
我有StringBuffer
被設置爲JTextArea
。現在我想根據一些條件,在StringBuffer
的部分字符串被強調如何做到這一點?設置下劃線的文本到文本區域
可以說,我需要在價格4.00,但與蘋果的文字下劃線,顯示一個類似求購蘋果。
我有StringBuffer
被設置爲JTextArea
。現在我想根據一些條件,在StringBuffer
的部分字符串被強調如何做到這一點?設置下劃線的文本到文本區域
可以說,我需要在價格4.00,但與蘋果的文字下劃線,顯示一個類似求購蘋果。
使用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教程部分以獲取更多信息和工作示例。
謝謝!有效。 – MRavindran
甲'JTextArea'支持純文本,這意味着單個字體(臉,風格和尺寸)。爲了完成不同樣式的文本部分,我們需要使用像JLabel這樣的組件或者更接近JTextArea的JEditorPane組件。 –
但在我的應用程序中,我需要將文字打包。 JLabel不支持文字換行。 JEditorPane如何? – MRavindran
*「JEditorPane怎麼樣?」*好吧..那怎麼樣?你在問什麼?順便說一句 - 注意['JLabel'(當顯示HTML時)**可以**換行](http://stackoverflow.com/a/14011645/418556)。 –