【发布时间】:2012-04-22 22:55:06
【问题描述】:
我在 JScrollPane 中有一个带有自定义 html 文档(不是来自 URL)的 JEditorPane,还有一个 JTextField,以便用户可以输入文本,然后在编辑器窗格中突出显示该文本。在文本字段的 keyPressed 事件中,我在文档中搜索文本,将其包围:
<a name='spot'><span style='background-color: silver'>my text</span></a>
突出显示背景,然后将新文本设置为 JEditorPane。这一切都很好,但我也想将窗格滚动到新突出显示的文本。所以在编辑器窗格的documentListener的changedUpdate方法中,我添加了:
pane.scrollToReference("spot");
此调用在 BoxView.modelToView 内引发 ArrayIndexOutOfBoundsException。该方法在文本中找到我的“点”引用,但我在想也许视图还没有用新文本更新,所以当它试图滚动到那里时,它失败了。
我无法获得对视图的引用,而且我似乎找不到要监听的表示 JEditorPane 的视图已完全更新的事件。有什么想法吗?
谢谢,
贾里德
【问题讨论】:
-
从哪种类型的 HtmlEditorKit 中,最好用SSCCE 更新您的问题引起
ArrayIndexOutOfBoundsException -
我没有更改任何 HtmlEditorKit,所以无论 JEditorPane 的默认值是什么。
-
没有 SSCCE 我无法找到您的问题,抱歉不包括电池,也许有人可以...
标签: java swing jeditorpane