JavaFx调用另一个面板并传输值

JavaFx调用另一个面板并传输值,javafx,webview,fxml,pane,fxmlloader,Javafx,Webview,Fxml,Pane,Fxmlloader,我的程序在界面上是结构化的包和控件,如下所示 **+ Browser : BrowserController.class** -@FXML private SplitPane spHTMLParser; @FXML private TextField txtURL;

我的程序在界面上是结构化的包和控件,如下所示

**+ Browser          : BrowserController.class** 
                     -@FXML
                      private SplitPane spHTMLParser;
                      @FXML
                      private TextField txtURL;
                      @FXML
                      private Button btnSearch;
                      @FXML
                      private WebView browser;

**+ Browser/Console  : ConsoleController.class**
                      @FXML
                      private Label lblURL;  
在浏览器页面中,当用户单击BTN搜索时,我将显示带有用户输入url的webview站点。当这个过程完成后,我想用SplitPane在Browser.fxml中显示Console.fxml,当显示控制台时,我希望标签可以获取url值。请帮帮我

 @FXML
    void btnSearch(ActionEvent event) {
        String url = txtURL.getText().trim();
        if (!url.isEmpty()) {
            WebEngine  webEngine = browser.getEngine();
            progressBar.progressProperty().bind(webEngine.getLoadWorker().progressProperty());
            webEngine.load(url);
            webEngine.getLoadWorker().stateProperty().addListener((ObservableValue<? extends Worker.State> observable, Worker.State oldValue, Worker.State newValue) -> {
                switch (newValue) {
                    case SUCCEEDED:
                        if (count++ != 0) {
                            btnNext.setDisable(false);
                        }
                        btnBack.setDisable(false);
                        progressBar.setVisible(false);
                        {
                            try {
                                FXMLLoader fxmlLoader = new FXMLLoader();
                                Pane pnConsole = fxmlLoader.load(getClass().getResource("console/Console.fxml").openStream());
                                spHTMLParser.getItems().add(pnConsole);
                                spHTMLParser.setDividerPositions(0.5);
                            } catch (IOException ex) {
                                Logger.getLogger(BrowserController.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        break;
                }
            });
        }
    }

看起来FXML文件的路径是错误的。例如,在顶部代码块中,您似乎建议使用名为
Console
的包,但在尝试加载FXML的代码中,您引用了名为
Console
的包。不确定这是打字错误还是其他错误。Hm可能重复,为什么不简单地使用
fxmloader.load(getClass().getResource(“console/console.fxml”)?我很好奇…嗨,谢谢你的帮助,我是错误的路径错误@GoXR3Plus我在这里发现这样的xml调用,我不知道它的不同之处,只是看起来FXML文件的路径是错误的。例如,在顶部代码块中,您似乎建议使用名为
Console
的包,但在尝试加载FXML的代码中,您引用了名为
Console
的包。不确定这是打字错误还是其他错误。Hm可能重复,为什么不简单地使用
fxmloader.load(getClass().getResource(“console/console.fxml”)?我很好奇…嗨,谢谢你的帮助,我是错误的路径错误@GoXR3Plus我发现这样的xml在这里调用,我不知道它在哪里不同
Pane pnConsole = fxmlLoader.load(getClass().getResource("console/Console.fxml").openStream());




Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at publishers.controllers.resources.browser.BrowserController.lambda$webView$4(BrowserController.java:144)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
        at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
        at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
        at javafx.scene.web.WebEngine$LoadWorker.updateState(WebEngine.java:1260)
        at javafx.scene.web.WebEngine$LoadWorker.dispatchLoadEvent(WebEngine.java:1371)
        at javafx.scene.web.WebEngine$LoadWorker.access$1200(WebEngine.java:1253)
        at javafx.scene.web.WebEngine$PageLoadListener.dispatchLoadEvent(WebEngine.java:1240)
        at com.sun.webkit.WebPage.fireLoadEvent(WebPage.java:2400)
        at com.sun.webkit.WebPage.fwkFireLoadEvent(WebPage.java:2244)
        at com.sun.webkit.network.URLLoader.twkDidFinishLoading(Native Method)
        at com.sun.webkit.network.URLLoader.notifyDidFinishLoading(URLLoader.java:838)
        at com.sun.webkit.network.URLLoader.lambda$didFinishLoading$96(URLLoader.java:829)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        at java.lang.Thread.run(Thread.java:745)