【问题标题】:Load javascript within JFrame or JPanel在 JFrame 或 JPanel 中加载 javascript
【发布时间】:2012-03-21 20:25:49
【问题描述】:

我想将以下 javascript 代码加载到 JPanelJFrame。可能吗?

<script language="javascript" type="text/javascript" charset="utf-8">
//javascript code
</script>

【问题讨论】:

标签: java javascript swing htmlunit


【解决方案1】:

可以使用第三方库:如HtmlUnit

它有相当好的 JavaScript 支持(不断改进) 并且能够使用非常复杂的 AJAX 库,模拟 Firefox 或 Internet Explorer,具体取决于您的配置 想用。

示例:

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class JavaScriptProgram
{
    private WebClient webClient;
    private HtmlPage currentPage;

    public JavaScriptProgram()
    {
        webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);
        webClient.setThrowExceptionOnScriptError(false);
        webClient.setJavaScriptEnabled(true);
    }

    public void visitPage(String url)
    {
        try
        {
            currentPage = (HtmlPage) webClient.getPage(url);
        }
        catch(Exception e)
        {
            // Cannot get the page
        }
    }

    public void executeJavaScript(String code)
    {
        currentPage.executeJavaScript(code);
    }

    public static void main(String[] args)
    {
        JavaScriptProgram p = new JavaScriptProgram();
        p.visitPage("http://www.stackoverflow.com");
        p.executeJavaScript("document.write('Hello World!');");
    }
}

【讨论】:

  • @JessyJameson 我添加了一个示例,说明如何使用 HtmlUnit 在 Java 中执行 JavaScript 代码 :)
【解决方案2】:

如果你想在你的 Swing 应用程序中使用浏览器功能,你可以查看Lobo,它也支持 Javascript。

【讨论】:

    【解决方案3】:

    Swing 组件本身不支持 Javascript 代码。如果你真的需要集成 Javascript 和 Java,你可以试试Rhino。但请记住:它只是 javascript 语言,您不能使用浏览器的 API。

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2012-05-24
      • 2015-03-11
      相关资源
      最近更新 更多