JavaFx Webview 未加载 url

JavaFx Webview doesn't load url

我学习了很多教程,但也许我遗漏了一些东西,因为 url 没有加载到 javafx webview 中,并且显示的是一个白色面板,而不是网页。我尝试使用 http://google.com 和其他网页,但都没有显示。 下面的 JPanel 出现在 JTabbedPane 中。我认为白色面板是下面填充的 JFXPanel。

这是代码:

public class RtcOverview extends JPanel {

private final JFXPanel jfxPanel = new JFXPanel();
private WebEngine engine;

String url = "http://google.com";

public RtcOverview() {

    super();
    initComponents();
    this.add(jfxPanel);
}

private void initComponents() {


    Platform.runLater(new Runnable() {
        @Override
        public void run() {

            WebView view = new WebView();

            engine = view.getEngine();
            engine.load(url);
            Scene scene = new Scene(view);
            jfxPanel.setScene(scene);
        }
    });
}

非常适合我。我附上了一个 MCVE,以便您可以比较并查看您的情况出了什么问题。如果此 MCVE 在您的计算机上失败,我建议您检查您的互联网设置并确保您的设置不会阻止应用程序使用互联网。

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;

import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Main extends JFrame {

    private final JFXPanel jfxPanel = new JFXPanel();
    private WebEngine engine;

    String url = "http://google.com";

    public Main() {
        super();
        initComponents();
        getContentPane().add(jfxPanel);
        setSize(500, 500);
        // Kill everything on closing the frame
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    private void initComponents() {
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                WebView view = new WebView();
                engine = view.getEngine();
                engine.load(url);
                Scene scene = new Scene(view);
                jfxPanel.setScene(scene);
            }
        });
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.setVisible(true);
    }
}