我的JEditorPane有问题,无法加载URL,总是显示java.io.FileNotFoundException。总而言之,我很困惑如何解决它。
JEditorPane editorpane = new JEditorPane();
editorpane.setEditable(false);
String backslash="\\";
String itemcode="a91000mf";
int ctr=6;
File file = new File("file:///C:/Development/project2/OfflineSales/test/index.html?item_code="+itemcode+"&jumlah="+String.valueOf(ctr)+"&lokasi=../images");
if (file != null) {
try {
//editorpane.addPropertyChangeListener(propertyName, listener)
editorpane.setPage(file.toURL());
System.out.println(file.toString());
} catch (IOException e) {
System.err.println(e.toString());
}
} else {
System.err.println("Couldn't find file: TextSamplerDemoHelp.html");
}
我只是放了"file:///C:/Development/project2/OfflineSales/test/index.html?item_code="+itemcode"
,但它会显示同样的错误:无法打开文件,但我可以在浏览器中打开它
答案 0 :(得分:0)
File
需要本地文件路径,但是" file://...."是一个URI ...所以试试这个:
URI uri = new URI("file:///C:/Development/project2/OfflineSales/test/index.html?item_code="+itemcode+"&jumlah="+String.valueOf(ctr)+"&lokasi=../images");
File file = new File(uri);
答案 1 :(得分:0)
您应该删除File类的所有用法。
以“file:”开头的字符串是URL,而不是文件名。它不是File构造函数的有效参数。
您正在调用带有URL的JEditor.setPage方法,而不是文件。没有理由创建File实例:
try {
URL url = new URL("file:///C:/Development/project2/OfflineSales/test/index.html?item_code=" + itemcode + "&jumlah=" + ctr + "&lokasi=../images");
editorpane.setPage(url);
} catch (IOException e) {
e.printStackTrace();
}
JEditorPane还有一个方便的方法,可以将String转换为URL,所以你甚至可以完全跳过使用URL类:
String url = "file:///C:/Development/project2/OfflineSales/test/index.html?item_code=" + itemcode + "&jumlah=" + ctr + "&lokasi=../images";
try {
editorpane.setPage(url);
} catch (IOException e) {
e.printStackTrace();
}
(请注意,不需要String.valueOf
。只要将String与任何对象或原始值连接起来,就会隐式调用它。)