【问题标题】:JavaFx Webview doesn't load urlJavaFx Webview 不加载 url
【发布时间】:2015-07-10 07:03:04
【问题描述】:

我学习了很多教程,但也许我遗漏了一些东西,因为 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);
        }
    });
}

【问题讨论】:

    标签: webview javafx load jpanel


    【解决方案1】:

    非常适合我。我附上了一个 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);
        }
    }
    

    【讨论】:

    • 你救了我的命,我一直在挣扎,看来代理有罪,我不得不用 System.setProperty() 添加代理。非常感谢你的帮助!!祝福你。
    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 2019-02-13
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2018-10-18
    • 2017-03-29
    • 2018-01-21
    相关资源
    最近更新 更多