JavaFX-HtmleElements在更改页面时为空

JavaFX-HtmleElements在更改页面时为空,java,webview,javafx,Java,Webview,Javafx,当用户单击链接时,我想更改页面,然后加载相关信息 但是,HTMLElement始终为null 代码如下: WebViewPanel.java //to be used in JFX Thread public void loadURLFX(final String url) { if (Misc.stringHasContent(url)) { String tmp = toURL(url); if (tmp == null) {

当用户单击链接时,我想更改页面,然后加载相关信息

但是,
HTMLElement
始终为
null

代码如下:

WebViewPanel.java

//to be used in JFX Thread
public void loadURLFX(final String url) {
    if (Misc.stringHasContent(url)) {

        String tmp = toURL(url);

        if (tmp == null) {
            tmp = toURL("http://" + url);
        }

        boolean invalidURL = false;
        InputStream stream = null;
        try {
            URL urlObj = new URL(tmp);
            stream = urlObj.openStream();
        } catch (Exception e) {
            invalidURL = true;
        } finally {
            try {
                stream.close();
            } catch (Exception ex) {
            }
            stream = null;
        }

        if (!invalidURL) {
            engine.load(tmp);
        } else {
            //https://www.google.com.sg/search?q=searchTerm
            engine.load("https://www.google.com.sg/search?q=" + url);
        }
    }
}
public void load(){
    if(Platform.isFxApplicationThread()){
        webViewPanel.loadURLFX(App.class.getResource("/hello.html").toExternalForm());
        HTMLElement element = (HTMLElement) WebMisc.getHTMLElement(webViewPanel.getWebEngine(), "menu");
    }
}
App.java

//to be used in JFX Thread
public void loadURLFX(final String url) {
    if (Misc.stringHasContent(url)) {

        String tmp = toURL(url);

        if (tmp == null) {
            tmp = toURL("http://" + url);
        }

        boolean invalidURL = false;
        InputStream stream = null;
        try {
            URL urlObj = new URL(tmp);
            stream = urlObj.openStream();
        } catch (Exception e) {
            invalidURL = true;
        } finally {
            try {
                stream.close();
            } catch (Exception ex) {
            }
            stream = null;
        }

        if (!invalidURL) {
            engine.load(tmp);
        } else {
            //https://www.google.com.sg/search?q=searchTerm
            engine.load("https://www.google.com.sg/search?q=" + url);
        }
    }
}
public void load(){
    if(Platform.isFxApplicationThread()){
        webViewPanel.loadURLFX(App.class.getResource("/hello.html").toExternalForm());
        HTMLElement element = (HTMLElement) WebMisc.getHTMLElement(webViewPanel.getWebEngine(), "menu");
    }
}

元素
始终为空。我应该做些什么来修复它?

您的
hello.html
中的
菜单是什么?您正在使用getElementById()?等待页面完全加载。请参阅WebEngine的javadoc。