我想知道在已经加载的applet上渲染我自己的图形的最佳/最简单方法是什么:
public class Game {
public static Applet applet = null;
public static URLClassLoader classLoader = null;
public static void load() {
try {
classLoader = new URLClassLoader(new URL[]{Jar.getJar().toURL()});
applet = (Applet) classLoader.loadClass("com.funkypool.client.PoolApplet").newInstance();
applet.setSize(new Dimension(800, 600));
applet.setBackground(Color.BLACK);
applet.setStub(new Stub());
applet.init();
applet.start();
JFrame loader = new JFrame("Loader");
loader.setPreferredSize(applet.getSize());
loader.add(applet);
loader.pack();
loader.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我希望它在applet上呈现,但是applet仍然保留了它的所有原始功能,我相信我可能需要使用反射?我正在考虑查看Powerbot.org渲染runescape客户端的方式,因为客户端仍然保留其所有功能等。
如果您有任何疑问或需要查看更多代码,请询问。
答案 0 :(得分:0)
假设这画了一些东西(我的applet-fu生锈了),那么你可以把它放在JFrame上,然后将JFrames'void paint(Graphics g)
子类化,以便绘制它想要的东西,并且然后描绘其他东西。
执行此操作的修改后的JFrame可以是以下内容(警告:未经测试的代码):
public static class OverlayJFrame extends JFrame {
private JPanel overlay;
public OverlayJFrame(String title) { super(title); }
public void setOverlay(JPanel overlay) { this.overlay = overlay; }
public void paint(Graphics g) { super.paint(g); overlay.setSize(getSize()); overlay.paint(g)); }
}