繁体   English   中英

Java Applet初始化方法

[英]Java Applet init method

import javax.swing.*;
import java.applet.*;

public class MyApplet extends Applet {
        static public int m,n,p,k;
    public void init () {
        m=Integer.parseInt(getParameter("m"));
                n=Integer.parseInt(getParameter("n"));
                p=Integer.parseInt(getParameter("p"));
                k=Integer.parseInt(getParameter("k"));
    }
    public static void main(String[] args) {
            int m1,n1,k1,p1;
            System.out.println(m+""+n+""+""+k+""+p+"44");
            m1 = (args.length>0) ? Integer.parseInt(args[0]) : m;
            n1 = (args.length>1) ? Integer.parseInt(args[1]) : n;
            k1 = (args.length>2) ? Integer.parseInt(args[2]) : k;
            p1 = (args.length>3) ? Integer.parseInt(args[3]) : p;
            JFrame frame = new JFrame("App");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocation(200,200);
            Board p;
            try {
                    p = new Board(m1,n1,k1,p1);
            } catch (Exception ex) { p = new Board(5, 5, 1, 1); }
            frame.add(p);
            frame.pack();
            frame.setVisible(true);
    }
}

我将首先解释:我在HTML文件中有这4个参数,但是如果有人给出自己的参数,则它们具有优先权,而如果有人给出了错误的参数(例如字母而不是数字),则是要注意的。 关键是,我认为从来没有调用过init方法,如您所见,我在main方法中添加了print,并且即使我在init中手动将'm'设置为15或类似的值,它也始终会打印0。是因为它直接进入main方法,而忽略了init吗? 如何防止这种情况发生,我确实需要这些HTML参数才能正常工作。

如果将您的类用作 Applet则托管它的Applet容器负责实例化它,并在适当的时间调用它的生命周期方法( init()start()stop()destroy() )。 特别要注意的是main()方法与将实例作为Applet运行没有关系 -它是直接在VM上作为应用程序运行类的入口。

另一方面,如果您将类作为应用程序运行,则它的main()方法中没有任何事情会导致init()被调用。 main()方法,甚至没有创建一个实例init()可以被调用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM