0

为什么我NullPointerException在调用getParameter()这个非常简单的JApplet实例时会得到一个?

public class TestPad extends javax.swing.JApplet {

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                TestPad appletDefn = new TestPad();

                TestPad.sSomeParam = (String)appletDefn.getParameter("sSomeParam");

                appletDefn.init();

                appletDefn.start();
            }
        });
    }

    private static String sSomeParam = "sSomeArg";

}

没有安全策略文件,没有其他包,只有两个库:a)swing-layout-1.0.4.jar b)JDK-1.6(默认)

4

2 回答 2

1
  1. 该代码在此处的小程序查看器中运行时不会引发 NPE。这对我来说并不奇怪,因为它会加载公共小程序类,然后调用init()and run()。它绝不会调用main(String[]).
  2. 这使我得出结论,您正在通过调用 运行“小程序” main(String[]),而不是使用小程序查看器。以这种方式运行它导致 NPE,因为没有设置和初始化小程序上下文/存根。这样做需要一些工作。
于 2012-02-03T00:42:04.730 回答
1

类中方法的实现Applet

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

所以方法调用transient private AppletStub stub会抛出异常。
Applet 有一个不同于普通应用程序的生命周期。我建议你看看Applets 上的官方 Java 教程

于 2012-02-03T00:21:37.603 回答