JEditorPane.setPage()方法在运行时只能工作一次



我目前正在进行一个项目,该项目允许用户输入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的可编辑值设置为false。

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

从JEditorPane setPage(URL)API描述:

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

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

尝试这个

文件f=新文件("HTML.htm");URL u=f.toURI().toURL();jEditorPane1.setPage(u);jEditorPane1.updateUI();

相关内容

  • 没有找到相关文章

最新更新