Возможно, мне здесь что-то не хватает, но я не могу найти ответ в другом месте. Я просто хочу отобразить апплет в моем коде GWT.Как отображать java-апплет внутри страницы GWT?
ОС: Windows XP Java: JDK 1.6.0_10 Другое: GWT, GWT-Ext 2.0.5
Вот апплет (очевидно упрощены для тестирования):
package foo.applet;
import javax.swing.JApplet;
import java.awt.Graphics;
public class HelloApplet extends JApplet
{
public void paint(Graphics g)
{
g.drawRect(0, 0,
getSize().width - 1,
getSize().height - 1);
g.drawString("Hello world!", 5, 15);
}
}
Вот код вызова его:
package foo.applet;
import com.google.gwt.user.client.ui.HTML;
import com.gwtext.client.widgets.Panel;
public class AppletPanel extends Panel
{
public AppletPanel()
{
HTML applet = new HTML();
applet.setHTML("<applet name=\"HelloApplet\" code=\"HelloApplet.class\" width=\"300\" height=\"300\"");
this.add(applet);
}
}
Когда я запускаю приложение в режиме размещения, сбой jvm (зарегистрированный инцидент 1425130 с Солнцем).
Когда я пытаюсь скомпилировать код GWT для запуска в браузере, я получаю это:
[ERROR] Errors in 'file:/C:/<blah>/applet/HelloApplet.java'
[ERROR] Line 3: The import javax.swing cannot be resolved
[ERROR] Line 4: The import java.awt cannot be resolved
[ERROR] Line 6: JApplet cannot be resolved to a type
[ERROR] Line 8: Graphics cannot be resolved to a type
[ERROR] Line 11: The method getSize() is undefined for the type HelloApplet
[ERROR] Line 12: The method getSize() is undefined for the type HelloApplet
Очевидно, что я не хватает какой-то апплет библиотеку, но я grepped через все банки в JDK и попытался включить все те, которые перечисляют JApplet или awt (plugin.jar, resources.jar, rt.jar, deploy.jar, javaws.jar).
Кроме того, я уверен, как только я решу эту проблему, есть еще один, скрывающийся сразу после него, но я сохраню это для другого вопроса.
Спасибо!
Унаследованное приложение не является апплетом - это приложение с толстым клиентом Swing. Мы взломали его, чтобы работать как апплет, потому что нашим клиентам нужен клиент браузера, и это самый быстрый способ сделать это.
Я не знаю, примет ли GWT решение JPanel - приложение не написано никоим образом, что GWT может анализировать - то есть он не использует API GWT, он использует Swing API. AFAIK, единственный способ смешать Swing с GWT будет в апплетах.
Я что-то упустил?
это сработало для меня! Благодаря! – user1448906