This question already has answers here:
Embed a 3rd-party JApplet in a Swing GUI & pass it parameters
                                
                                    (2个答案)
                                
                        
                                6年前关闭。
            
                    
我在使用ClassLoader时遇到问题。我的代码段:

[...]

Class<?> appletClass = classLoader.loadClass("path.to.Applet123");
Applet applet = (Applet) appletClass.newInstance();
applet.init();
applet.start();

[...]


Applet123类不是我的,因此我无法对其进行编辑。但是我知道,在Applet123类中是这样的:

public void init() {
    System.out.println(getParameter("myParameter"));
}


不幸的是,它打印null

我要在代码中添加些什么以使用包含字符串的参数myParameter加载Applet123.class,例如“你好”?

感谢您的答复。

最佳答案

如果确实需要自己加载applet,则还需要提供一个AppletStub实例,Applet实例从该实例读取参数。 Java源代码显示了这一点:

public String getParameter(String name) {
    return stub.getParameter(name);
}


请注意,许多方法都从存根实例获取数据,因此您可以执行以下操作并填补空白,或者(可能更好)使用JNLP,如@owlstead所述!

AppletStub stub = new AppletStub() {
    // lots of code including defining the parameter 'myParameter'
};
Applet a = new Applet();
a.setStub(stub);
a.init();
// ...

10-05 18:36