Search code examples
javajavascriptswinghtmlunit

Load javascript within JFrame or JPanel


I would like to load a the below javascript code to a JPanel or a JFrame. Is it possible?

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

Solution

  • You can use third-party libraries: such as HtmlUnit

    It has fairly good JavaScript support (which is constantly improving) and is able to work even with quite complex AJAX libraries, simulating either Firefox or Internet Explorer depending on the configuration you want to use.

    Example:

    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!');");
        }
    }