1

次のように、ゲーム用の外部アプレットをロードする JFrame を作成しました。

//Setup everything for the Stub.. Below adds the stub to the applet and creates it.
DownloadFile(new URL(World + "/" + Archive), "./gamepack.jar");
CAppletStub Stub = new CAppletStub(new URL(World), new URL(World), this.Parameters);
applet = (Applet) new URLClassLoader(new URL[] {new URL(World.toString() + "/" + Archive)}).loadClass("Rs2Applet").newInstance();

applet.setStub(Stub);
applet.init();
applet.start();
applet.setPreferredSize(new Dimension(Width, Height));
Frame.getContentPane().add(applet);

このアプレットのスクリーンショットを作成するか、その表面を BufferedImage に描画しようとしています。「アプレット」をサブクラス化し、URLClassLoader をそのクラスにキャストしようとしましたが、キャストできません。

アプレットがレンダリングするすべてのものをイメージにキャプチャするにはどうすればよいですか?

4

2 に答える 2

2

これは、アプレットだけでなく、どのコンポーネントでも機能します。

public static BufferedImage toBufferedImage(Component component) {
    BufferedImage image = new BufferedImage(component.getWidth(), 
        component.getHeight(), BufferedImage.TYPE_INT_RGB);
    Graphics g = image.getGraphics();
    component.paint(g);
    return image;
}
于 2013-04-14T18:40:06.033 に答える
1

通常の Swing アプリケーションにはスクリーン イメージを使用します。アプレットを JFrame にロードすると問題が発生するかどうかはわかりません。

于 2013-04-14T19:27:46.290 に答える