English 中文(简体)
如何使JEditorPane突出显示整行的全宽(而不仅仅是文本)?
原标题:
  • 时间:2008-12-09 17:03:44
  •  标签:

我正在尝试让JEditorPane突出显示显示行的整个宽度。我尝试过的所有示例都只突出显示文本内容。例如,如果我有以下内容:

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

在上面的框中表示的JEditorPane中,突出显示第一行只突出显示以下文本(在下面用[和]表示)。

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

我希望它可以像以下一样突出JEditorPane的全部宽度:

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

有没有办法做到这一点?

最佳回答

这似乎并不太复杂。我会把它变成一个小的代码挑战

只需创建自己的自定义高亮器,扩展DefaultHighlighter。

重写paint()方法,并保持矩形的宽度不变:它将是面板的宽度。

你将在DZone Snippets中找到一个完整的示例:将其复制并运行。告诉我这是否是你想要的。它包括你在答案中提到的textPane.setSelectionColor(new Color(1.0f,1.0f,1.0f,0.0f))添加。

将此翻译成中文:alt文本 http://www.freeimagehosting.net/uploads/94a3a990e4.png

问题回答

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

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




相关问题
热门标签