我目前正在进行一个项目,该项目允许用户输入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();