【问题标题】:Paint over applet loaded with classloader在加载了类加载器的小程序上绘制
【发布时间】:2013-01-12 22:43:11
【问题描述】:

我想知道在已加载的小程序上渲染我自己的图形的最佳/最简单方法是什么:

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 客户端上呈现的方式,因为客户端仍然保持其所有功能等。

如果您有任何问题或需要查看更多代码,请尽管提问。

【问题讨论】:

  • 您想在小程序区域“上方”渲染一些东西还是要修改小程序本身?首先,我会使用带有 jframe 的 overlaylayout 并设置小程序和另一个面板,然后在面板的图形对象上做我的 mojo。如果您希望修改小程序本身的图形例程,请修改小程序代码或从小程序代码扩展并覆盖绘制方法。
  • 我希望它在小程序上渲染,但小程序仍然保留其所有原始功能,我相信我可能需要使用反射?我正在考虑查看 Powerbot.org 在 runescape 客户端上呈现的方式,因为客户端仍然保持其所有功能等。
  • “可能需要使用反射吗?” 不。反射与此无关。
  • 如需尽快获得更好的帮助,请发帖SSCCE
  • @AndrewThompson 我无法将 SSCCE 作为我正在为 Funkypool.com 开发的游戏加载器发布,所以我必须发送整个内容:/

标签: java graphics applet classloader render


【解决方案1】:

假设这绘制了一些东西(我的 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)); }
}

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 2011-06-04
    • 2011-01-05
    • 2014-04-20
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多