Как я могу встроить IE в свой java-апплет [duplicate]

Основная проблема с кодом, показанным OP, заключается в том, что i никогда не читается до второго цикла. Чтобы продемонстрировать, представьте, что вы видите ошибку внутри кода

funcs[i] = function() {            // and store them in funcs
    throw new Error("test");
    console.log("My value: " + i); // each should log its value.
};

Ошибка на самом деле не происходит до тех пор, пока funcs[someIndex] не будет выполнен (). Используя эту же логику, должно быть очевидно, что значение i также не будет собрано до этой точки. Как только исходный цикл завершится, i++ добавит i к значению 3, что приведет к сбою условия i < 3 и завершению цикла. На этом этапе i является 3, поэтому, когда используется funcs[someIndex](), и i оценивается, он равен 3 - каждый раз.

Чтобы пройти мимо этого, вы должны оценить i, поскольку он встречается. Обратите внимание, что это уже произошло в форме funcs[i] (где есть 3 уникальных индекса). Существует несколько способов захвата этого значения. Один из них - передать его в качестве параметра функции, которая уже несколько раз показана здесь.

Другой вариант - построить объект функции, который сможет закрыть эту переменную. Это может быть выполнено таким образом

jsFiddle Demo

funcs[i] = new function() {   
    var closedVariable = i;
    return function(){
        console.log("My value: " + closedVariable); 
    };
};

65
задан 17 revs, 4 users 78% 26 May 2016 в 11:31
поделиться

14 ответов

35
ответ дан OscarRyz 1 September 2018 в 01:50
поделиться

Вы можете попробовать JEditorPane, он не интерпретирует продвинутый HTML, ни Javascript, ни продвинутый CSS, но вы можете сами написать эту часть, называемую EditorKit. Это класс / объект, с которым советуется JEditorPane или как он должен отображать его содержимое.

Я знаю, что это возможно, потому что я пробовал и терпел неудачу (: P), но он может быть устаревшим или устаревшим к настоящему времени я не знаю.

1
ответ дан 11684 1 September 2018 в 01:50
поделиться

Вы можете использовать SWT для вашего графического интерфейса. Его контроль браузера позволяет вам вставлять IE, Mozilla или Safari (в зависимости от платформы, в которой вы работаете), с небольшой болью.

8
ответ дан alexmcchessers 1 September 2018 в 01:50
поделиться

Вы можете попробовать Webrenderer или Ice Browser

1
ответ дан Bart 1 September 2018 в 01:50
поделиться

Вы также можете попробовать JWebBrowser от DJ Native Swing: http://djproject.sourceforge.net/ns

2
ответ дан Christopher Deckers 1 September 2018 в 01:50
поделиться

Я успешно открыл браузер с Java, используя SWT . Вы можете найти примеры кода о том, как использовать SWT для открытия окна браузера. Это очень легко сделать.

2
ответ дан Eddie 1 September 2018 в 01:50
поделиться

Если вы посмотрите на Launcher Minecraft (старый), просмотрите LoginForm или LauncherFrame, вы сможете узнать этот метод. Существует учебник kippykip на youtube о том, как декомпилировать и отредактировать его: здесь

0
ответ дан Emil Carr 1 September 2018 в 01:50
поделиться

JxBrowser еще не упоминается. Он включает Mozilla Firefox (Gecko), Apple Safari (WebKit) или Internet Explorer. Руководство для программистов

4
ответ дан h3xStream 1 September 2018 в 01:50
поделиться

Если вам нужно чистое решение Java, вы можете попробовать JWebEngine . Это делает HTML 4 очень хорошим. Вы можете использовать его в апплете, веб-сайте Java и на любой платформе. Использование очень просто.

1
ответ дан Horcrux7 1 September 2018 в 01:50
поделиться

Я считаю, что JWebPane станет официальным способом встроить браузер в приложение java. Он основан на открытом исходном движке - WebKit, который используется в браузерах Apple Safari и Googles Chrome. Подробнее см. в этом блоге .

23
ответ дан Jimmy 1 September 2018 в 01:50
поделиться
3
ответ дан l_39217_l 1 September 2018 в 01:50
поделиться

Вы можете встроить браузер в GUI Swing / AWT с помощью API JDIC . Я не вижу упоминания OS X , поэтому он не может быть вам полезен.

2
ответ дан McDowell 1 September 2018 в 01:50
поделиться

Возможно, Chromium Embedded Framework является для вас вариантом. Специфично для Java существует

javacef для SWT: https://github.com/wjywbs/javacef

java-cef для AWT: https://bitbucket.org/chromiumembedded/java-cef

0
ответ дан Stefan 1 September 2018 в 01:50
поделиться

На сегодняшний день самым надежным встраиваемым браузером, с которым я знаком, является тот, что есть в SWT. Фактически, это настолько гибко, что наведение JavaDoc, которое вы можете видеть в Eclipse, на самом деле является браузером, а представление JavaDoc фактически поддерживает такие вещи, как анимация!

Единственный риск с использованием SWT заключается в том, что существуют разные версии библиотеки SWT для разных платформ. Я не уверен, есть ли единая банка, которую вы могли бы включить, чтобы охватить всех.

2
ответ дан Uri 1 September 2018 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: