2008-12-09 51 views
4

我試圖讓JEditorPane突出顯示行的全寬。我試過的所有例子只突出了文本內容。例如,如果我有內容,諸如這樣的:如何讓JEditorPane突出顯示一行的全部寬度(而不僅僅是文本)?

--------------------------------- 
|Here is some text    | 
|some more text     | 
--------------------------------- 

通過上述框表示一個JEditorPane內,則突出顯示的第一行亮點只有「這裏是一些文本」([和]下面之間表示)。

--------------------------------- 
[Here is some text]    | 
|some more text     | 
--------------------------------- 

我想它強調JEditorPane中像下面全寬:

--------------------------------- 
[Here is some text    ] 
|some more text     | 
--------------------------------- 

有沒有辦法做到這一點?

回答

4

這似乎不太複雜。我會做一點code-challenge

只需創建您自己的自定義熒光筆,即可擴展DefaultHighlighter。

覆蓋paint()方法,並簡單地保持矩形畫的寬度不變:它將是面板的寬度。

你會發現在DZone Snippets a complete example:複製它並運行它。告訴我這是不是你想要的。它包括你在答案中提到的textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));

alt text http://www.freeimagehosting.net/uploads/94a3a990e4.png

+0

謝謝。這幾乎是我所追求的。唯一的問題是它與選擇突出顯示交互嚴重(在取消選擇後留下明顯選定的文本塊)。對我而言,如果我能完全關閉選擇,那可能會完成這項工作。 – 2008-12-10 09:41:33

+0

好的。我會在今天晚些時候或明天晚些時候檢查 – VonC 2008-12-10 10:14:52

1

爲了防止選擇從VonC的解決方案干涉突出我添加了以下行TextHighlight構造函數(從根本上讓高亮選擇不可見的):

textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f)); 
相關問題