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 中绘制它的表面。我尝试将“Applet”子类化并将我的 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 回答