如何在 JEditorPane 中嵌入 HtmlUnit Web 客户端?

How to embed HtmlUnit web client at JEditorPane?

我知道 JEditorPane 不能很好地呈现网页元素。因此我尝试了 HtmlUnit。但是,我希望将支持 JS 的浏览器嵌入到 JEditorPane 中以查看结果,而 JEditorPane 的 .setPage() 不接受 HTML 页面,而是 URL。我在 Javax 应用程序上。我该如何解决这个问题?

附带说明一下,稍后我需要通过 D3 将视觉数据嵌入到浏览器中。感谢所有给出的建议。

这是我的代码片段:

    webclient = new WebClient (BrowserVersion.CHROME);  
    currentpage = (HtmlPage) webclient.getPage("http://www.whosebug.com");
    currentpage.executeJavaScript("document.write('Hello World!');");

    jepuser = new JEditorPane();
    jepuser.setEditable(false);

    try{
        jepuser.setPage(currentpage);           //<---
        jepuser.setContentType("text/html");
        jepuser.updateUI();
    }
    catch(IOException e){
        System.err.println(e);
    }
    spuser = new JScrollPane(jepuser);
    spuser.setViewportBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
    spuser.setSize(800, 420);
    spuser.setLocation(280, 140);
    spuser.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    //spuser.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    spuser.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

    add(spuser, BorderLayout.CENTER);

JEditorPane 可以渲染一些基本的HTML(可能是 3.2 左右的版本) HtmlUnit 是一个主要用于单元测试的无头浏览器

您似乎想在 Java 应用程序中嵌入功能齐全的浏览器。我会推荐尝试 JavaFX - 它有一个基于 WebKit 的本机浏览器控件 - WebView