使用 JEditorPane 及其 setPage 方法

发布于 2024-07-14 17:57:42 字数 178 浏览 6 评论 0原文

我有一个显示 HTML 文件的编辑器窗格。 当我要求它执行一次时,它会正常显示 HTML 文件。 然后,我对 HTML 文件进行更改并使用 setPage 方法,以便打印更新后的 HTML 文件,但即使 HTML 文件已更改,它也不会执行此操作。

这是编辑器窗格的问题还是我的代码有问题?

I have an editor pane which displays an HTML file. When I ask it to do it once, it displays the HTML file fine. I then make changes to my HTML file and use the setPage method so that it prints the updated HTML file but it doesn't do this even though the HTML file is changed.

Is this a problem with the Editor pane or is there something wrong with my code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜兔 2024-07-21 17:57:42

查看 JavaDoc对于 setPage,我看到以下内容:

如果所需的 URL 是当前显示的 URL,则不会显示该文档
重新加载。 要强制重新加载文档,需要清除流描述
文档的属性。 以下代码显示了如何完成此操作:

文档 doc = jEditorPane.getDocument(); 
  doc.putProperty(Document.StreamDescriptionProperty, null); 
  

Looking at the JavaDoc for setPage, I see the following:

If the desired URL is the one currently being displayed, the document will not be
reloaded. To force a document reload it is necessary to clear the stream description
property of the document. The following code shows how this can be done:

Document doc = jEditorPane.getDocument();
doc.putProperty(Document.StreamDescriptionProperty, null);
壹場煙雨 2024-07-21 17:57:42

我做了一些测试并重现了这种行为。 当我调用 setPage 并将之前在同一方法中传递的相同 URL 作为参数传递时,JEditorPane 似乎忽略了该调用。

一个简单的解决方法:测试新的 Url 是否与前一个相同。 如果是,请稍微改变一下 URL 的格式。 例如在末尾添加 %20。 新的 Url 实际上引用同一页面,但 JEditorPane 会将其视为新页面,并会正确地重新加载它。

I've done some tests and I've reproduced this behaviour. When I am calling setPage and passing as argument the same URL that was passed previously in the same method, the JEditorPane seems to ignore the call.

A simple work around: test if the new Url is the same as the previous one. If yes, format the Url a bit differently. For example add an %20 at the end. The new Url actually refers to the same page, but the JEditorPane will consider it as a new one and it will properly reload it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文