4

我正在尝试让 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

2 回答 2

4

这似乎并不太复杂。我会做一点代码挑战

只需创建您自己的自定义荧光笔,扩展 DefaultHighlighter。

覆盖该paint()方法,并简单地保持矩形绘制的宽度不变:它将是面板的宽度。

您将在DZone Snippets 中找到一个完整的示例:复制并运行它。告诉我这是否是你所追求的。它包括textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));您在回答中提到的添加内容。

替代文字 http://www.freeimagehosting.net/uploads/94a3a990e4.png

于 2008-12-09T21:23:08.100 回答
1

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

textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));
于 2008-12-11T15:52:38.203 回答