尝试将本地页面加载到JavaFX webEngine中

时间:2016-02-29 15:55:46

标签: java user-interface javafx webview

我在JavaFX应用程序的选项卡上有一个webView组件,我试图将本地存储的HTML页面加载到:

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("/webView/main.html");

我的html文档(可能不正确)存储在以下位置:

Location of my HTML document

其中com.cds.gui包含我尝试加载文件的类。如果我打印出webEngine.getDocument(),我会null - 即文档未加载。

请让我知道我哪里出错了!感谢。

3 个答案:

答案 0 :(得分:17)

您需要将本地文件作为URL读取,以便WebEngine可以找到它。例如,您可以使用

将文件作为资源找到
URL url = this.getClass().getResource("/com/cds/gui/webView/main.html");
webEngine.load(url.toString());

或者您可以将实际的String路径加载到File对象中,并使用它来获取String URL。

File f = new File("full\\path\\to\\webView\\main.html");
webEngine.load(f.toURI().toString());

希望这有帮助!

答案 1 :(得分:2)

您可以使用URI的文件语法,例如

file:///C:/path/to/file.html (Windows)

https://en.wikipedia.org/wiki/File_URI_scheme

答案 2 :(得分:1)

长时间折磨了文件的路径,这对我有用(Maven项目,文件夹资源):

WebEngine engine = html.getEngine();
            File f = new File(getClass().getClassLoader().getResource("html/about.htm").getFile());
            engine.load(f.toURI().toString());