Загрузить javascript в JFrame или JPanel

Я хотел бы загрузить приведенный ниже код javascript в JPanel или JFrame. Является ли это возможным?

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

person Jessy Jameson    schedule 03.03.2012    source источник
comment
Атрибут language устарел в HTML 4. См. HTML 4 документация.   -  person Andrew Thompson    schedule 03.03.2012


Ответы (3)


Вы можете использовать сторонние библиотеки, такие как 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!');");
    }
}
person Eng.Fouad    schedule 03.03.2012
comment
@JessyJameson Я добавил пример выполнения кода JavaScript на Java с помощью HtmlUnit :) - person Eng.Fouad; 03.03.2012

Если вам нужны возможности браузера в вашем приложении Swing, вы можете проверить Lobo, он также поддерживает Javascript.

person Lycha    schedule 03.03.2012

Компоненты Swing изначально не поддерживают коды Javascript. Если вам действительно нужна интеграция Javascript и Java, попробуйте Rhino. Но помните: это только язык javascript, вы не можете использовать API браузера.

person Demetrio Neto    schedule 03.03.2012