我目前正在开发一个允许用户输入网址的项目,例如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文件时,文件IS正在更新,但jEditorPane没有使用新的html脚本进行更新。
此外,JEditorPane的Editable vale设置为false。
当我在Chrome中打开文件时,它会获得完全更新的脚本。
答案 0 :(得分:2)
来自JEditorPane setPage(URL)API描述:
要强制重新加载文档,必须清除文档的流描述属性。以下代码显示了如何完成此操作:
Document doc = jEditorPane.getDocument();
doc.putProperty(Document.StreamDescriptionProperty, null);
答案 1 :(得分:0)
试试这个
文件f =新文件(“HTML.htm”); URL u = f.toURI()。toURL(); jEditorPane1.setPage(U); jEditorPane1.updateUI();