JEdi​​torPane.setPage()方法在运行时只能运行一次

时间:2013-12-05 01:20:04

标签: java html swing user-input jeditorpane

我目前正在开发一个允许用户输入网址的项目,例如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中打开文件时,它会获得完全更新的脚本。

2 个答案:

答案 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();