我想突出顯示JTextArea子類的多行(未選中)。雖然我想強調整行,而不是每行包含的文本。我得到了這個工作,但它只是突出顯示文字:突出顯示JTextArea的行
DefaultHighlighter h = (DefaultHighlighter)textArea.getHighlighter(
try {
int start = textArea.getLineStartOffset(blockedLine);
int end = textArea.getLineEndOffset(blockedLine);
DefaultHighlightPainter redHighlight = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
h.addHighlight(start, end, redHighlight);
} catch (BadLocationException ex) {
Logger.getLogger(JavaFilter.class.getName()).log(Level.SEVERE, null, ex);
}
我該如何突出顯示整行而不僅僅是文本?我爲文本區域使用了開源庫,因此獲取JTextPane或其他組件不是一個選項(使用rysntaxtextarea庫)。
你的代碼在XP上使用JDK6_7。關鍵是'最終'值。當我使用'結束'時,整條線突出顯示。當我使用'end - 1'時,只有文本被突出顯示。因此,您需要確保重點中包含換行符。也許嘗試使用'結束+1'?如果您仍然遇到問題,請發佈您的SSCCE,也許這是版本/平臺問題。 – camickr 2012-02-14 16:41:46
@camickr s/he使用Fifesoft的JTextArea的衍生物, – mKorbel 2012-02-14 16:47:59
更改結束偏移量只會使突出顯示變成我猜測的一行。我檢查它的壽。 – Giannis 2012-02-14 18:18:35