正在尝试将本地页面加载到JavaFX webEngine中
我在JavaFX应用程序的选项卡上有一个webView组件,我正试图将本地存储的HTML页面加载到该选项卡中:正在尝试将本地页面加载到JavaFX webEngine中,java,user-interface,javafx,webview,Java,User Interface,Javafx,Webview,我在JavaFX应用程序的选项卡上有一个webView组件,我正试图将本地存储的HTML页面加载到该选项卡中: WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); webEngine.load("/webView/main.html"); 我的html文档(可能不正确)存储在以下位置: 其中com.cds.gui包含我试图加载文件的类。如果我打印出webEngine.getDocument()
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("/webView/main.html");
我的html文档(可能不正确)存储在以下位置:
其中com.cds.gui包含我试图加载文件的类。如果我打印出webEngine.getDocument()
我会得到null
——也就是说,文档没有被加载
请告诉我哪里出了问题!谢谢。您需要将本地文件作为URL读入,以便Web引擎可以找到它。例如,您可以使用
URL url = this.getClass().getResource("/com/cds/gui/webView/main.html");
webEngine.load(url.toString());
或者,您可以将实际字符串路径加载到文件对象中,并使用它获取字符串URL
File f = new File("full\\path\\to\\webView\\main.html");
webEngine.load(f.toURI().toString());
希望这有帮助 您可以使用URI的文件语法,例如
file:///C:/path/to/file.html (Windows)
文件路径长期困扰着我,这对我很有效(Maven项目,文件夹资源):
感谢您的回答,我尝试将文件作为URL读取,但仍然出现空指针异常?您是否确实看到WebView本身加载的任何内容?没有,HTML页面本身中只有段落标记内的文本“123abc”。您希望打印文档对象,通常需要更长的时间才能获得值集。您可以在引擎的documentProperty上添加一个ChangeListener,当文档值从null更改为对象实例时,它会通知您。此外,如果您还没有这样做,请尝试将包名用作文件路径的一部分。如下所示:getResource(“/com/cds/gui/webView/main.html”);由于该应用程序将部署在许多不同的系统上,因此根据我所了解的情况,这并不是一个真正的选项。但是,如果有办法获取类的当前位置(因为文件包含在当前项目的文件夹中),请让我知道!!也许是这样的:我正在尝试
stringurl=Main.class.getResource(“/webview/Main.html”).toExternalForm()代码>时,我收到一个空指针异常。不必这样做,但从类路径的根目录尝试:/com/cds/gui/webView/main.html。请注意“webView”中的大写字母V(根据上面的结构)。假设此代码位于com.cds.gui
包中的一个类中,请尝试webEngine.load(getClass().getResource(“webView/main.html”).toExternalForm()代码>(注意路径上没有任何前导的/
。@James\u D这正是我要找的,谢谢!您应该将此作为实际回复发布。:)@拉普蒂湖
WebEngine engine = html.getEngine();
File f = new File(getClass().getClassLoader().getResource("html/about.htm").getFile());
engine.load(f.toURI().toString());