-1

ロードされたアプレットで自分のグラフィックをレンダリングするための最良/最も簡単な方法は何だろうと思っていました:

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();
        }
    }
}

アプレット上でレンダリングしたいのですが、アプレットは元の機能をすべて維持しています。おそらくリフレクションを使用する必要があると思いますか? クライアントはすべての機能などを維持しているため、Powerbot.org が runescape クライアントを介してレンダリングする方法を検討することを考えていました。

質問がある場合、またはさらにコードを確認する必要がある場合は、質問してください。

4

1 に答える 1

0

Assuming this draws something (my applet-fu is rusty), then you can draw on top of it by placing it in a JFrame and subclassing the JFrames' void paint(Graphics g) so that it paints whatever it wants to, and then paints something else.

A modified JFrame that does this could be the following (warning: untested code):

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)); }
}
于 2013-01-12T22:49:59.237 に答える