ここではおそらく単純なものが欠けていますが、他の場所で答えを見つけることができません。GWT コードでアプレットを表示したいだけです。
OS: 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 がクラッシュします (Sun にインシデント 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
明らかにいくつかのアプレット ライブラリが不足していますが、jdk 内のすべての jar を調べて、JApplet または awt をリストするすべてのもの (plugin.jar、resources.jar、rt.jar、deploy.jar、 javaws.jar)。
また、この問題を解決したら、その直後に別の問題が潜んでいると確信していますが、それは別の質問のために保存します.
ありがとう!
レガシー アプリはアプレットではなく、シック クライアント Swing アプリケーションです。お客様がブラウザ クライアントを必要としており、これがそれを実現する最速の方法であるため、アプレットとして実行するようにハッキングしました。
GWT が JPanel ソリューションを受け入れるかどうかはわかりません。アプリは、GWT が解析できる方法で書かれていません。つまり、GWT API を使用しておらず、Swing API を使用しています。私の知る限り、Swing と GWT を混在させる唯一の方法は、アプレットの方法です。
何か不足していますか?