我有一個JTextPane,我想添加行並根據它們的內容讓它們具有不同的格式。JTextPane格式
目前我有這個
StyleContext context = new StyleContext();
StyledDocument document = new DefaultStyledDocument(context);
Style styleBold = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setBold(styleBold, true);
StyleConstants.setFontSize(styleBold, 18);
Style styleNorm = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setFontSize(styleNorm, 15);
for (int i = 0; i < temp.size(); i++) {
String tmp = temp.get(i);
if (tmp.substring(0, 2).equals(COMMENT_PREFIX)) {
String addThis = " - " + tmp.substring(2);
try {
document.insertString(document.getLength(), addThis,
styleNorm);
} //CATCH
} else if (tmp.substring(0, 2).equals(VERSION_PREFIX)) {
Date d = new Date(System.currentTimeMillis());
String addThis = "Version: " + tmp.substring(2) + " - "
+ d.toString();
try {
document.insertString(document.getLength(), addThis,
styleBold);
} //CATCH
}
try {
document.insertString(document.getLength(), "\n", styleNorm);
} //CATCH
}
我拿出catch語句以減少代碼量。
但是,這會將我的整個文本格式設置爲styleNorm
。這是因爲它是最後一次叫Style
,它們覆蓋了彼此?如果是這樣,我該如何解決這個問題?
Textpane是一個痛苦,但你需要一個格式化。 – 2013-03-24 15:17:50
請編輯您的問題以包含專注於單個問題的[sscce](http://sscce.org/)。 – trashgod 2013-03-24 16:03:58