如何让JEditorPane突出显示一条线的整个宽度(而不仅仅是文本)?

时间:2008-12-09 17:03:45

标签: java line highlighting jeditorpane

我正在尝试使用JEditorPane突出显示所显示行的全宽。我试过的所有例子都只突出了文字内容。例如,如果我有这样的内容:

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

在上面方框所代表的JEditorPane中,然后突出显示第一行只突出显示'Here is some text'(在[和]之间表示)。

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

我希望突出显示JEditorPane的全宽,如下所示:

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

有办法做到这一点吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

为防止选择突出显示干扰VonC的解决方案,我将以下行添加到TextHighlight构造函数中(实际上使选择突出显示不可见):

textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));