我正在尝试使用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 |
---------------------------------
有办法做到这一点吗?
答案 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));