java - JEdi​​torPane.setPage() 方法在运行时仅工作一次

标签 java html swing user-input jeditorpane

我目前正在做一个项目,允许用户输入一个url,例如http://www.google.com用户可以编辑页面的 html 代码。到目前为止,当 JTextArea 释放按键时,我将编辑的文件保存为 html 文档。这是我使用的源代码:

String s = jTextArea1.getText();
PrintStream ps = new PrintStream(new FileOutputStream(new File("HTML.htm")));
ps.print(s);
ps.close();

this.resetPage();

最后一行代码调用这段源代码(这实际上是我尝试使用用户输入更新页面的地方:

File f = new File("HTML.htm");
URL u =f.toURI().toURL();
jEditorPane1.setPage(u);

所有正确的异常都会被捕获。它会更新页面上的文本一次。所有图像都是空白的(这是我所期望的,因为路径都是本地的),但这对文档中的其他 html 应该没有真正的影响。

当我在 Notepad++ 中打开 HTML.htm 文件时,文件正在更新,但 jEditorPane 没有使用新的 html 脚本进行更新。

此外,JEditorPane 的 Editable 值设置为 false。

当我在 Chrome 中打开该文件时,它会获取完全更新的脚本。

最佳答案

来自 JEditorPane setPage(URL) API 描述:

要强制重新加载文档,必须清除文档的流描述属性。下面的代码展示了如何做到这一点:

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

关于java - JEdi​​torPane.setPage() 方法在运行时仅工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20389588/

相关文章:

java - 如何使用 Double 数据类型减少流

java - JDBC取消Oracle存储过程调用

java - SpringMVC 配置 applicationContext.xml 应该导入 some-servlet.xml

javascript - 将脚本渲染为 HTML 而不执行

javascript - 从移动设备访问时 Bootstrap 导航栏不会折叠,当我缩小桌面浏览器时工作正常

java - 使用JButton后如何更改图标?

java - 如何在我的马棋子去过的每个位置放置一个数字(在 2D "board"数组中)

java - JTextArea 与 JPanel 内的 JScrollPane 不能很好地配合

java - Eclipse Juno 4.2 的 Swing 插件

html - 由于某种原因,移动汉堡包链接左对齐