Я, вероятно, упускаю что-то простое здесь, но я не могу найти ответ в другом месте. Я просто хочу отобразить апплет в своем коде 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 с Sun).
Когда я пытаюсь скомпилировать код 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
Очевидно, что мне не хватает какой-то библиотеки апплетов, но я просмотрел все jar-файлы в jdk и попытался включить все те, которые перечисляют JApplet или awt (plugin.jar, resources.jar, rt.jar, deploy .jar, javaws.jar).
Кроме того, я почти уверен, что когда я решу эту проблему, сразу за ней скрывается еще одна, но я оставлю это для другого вопроса.
Спасибо!
Устаревшее приложение - это не апплет, а приложение Swing для толстого клиента. Мы взломали его для запуска в качестве апплета, потому что нашим клиентам нужен клиент для браузера, и это самый быстрый способ сделать это.
Я не знаю, примет ли GWT решение JPanel - приложение не написано каким-либо образом, который GWT может проанализировать, т. Е. Оно не использует GWT API, оно использует Swing API. AFAIK, единственный способ смешать Swing с GWT - это апплет.
Я что-то упустил?