Java小程序初始化方法

Java小程序初始化方法,java,parameters,applet,Java,Parameters,Applet,我将首先解释:我在HTML文件中有这4个参数,但如果有人给出了自己的参数,那么他们就有优先权,关键是如果有人给出了错误的参数,比如字母而不是数字。关键是,我不认为init方法曾经被调用过,正如你们所看到的,我在main方法中添加了print,它总是打印零,即使我在init中手动将'm'设置为15或什么,仍然打印0。是因为它直接转到main方法,忽略init吗?如何防止这种情况发生,我真的需要这些HTML参数来工作。如果您将类用作小程序,则承载它的小程序容器负责实例化它,并在适当的时间调用其上的生

我将首先解释:我在HTML文件中有这4个参数,但如果有人给出了自己的参数,那么他们就有优先权,关键是如果有人给出了错误的参数,比如字母而不是数字。关键是,我不认为init方法曾经被调用过,正如你们所看到的,我在main方法中添加了print,它总是打印零,即使我在init中手动将'm'设置为15或什么,仍然打印0。是因为它直接转到main方法,忽略init吗?如何防止这种情况发生,我真的需要这些HTML参数来工作。

如果您将类用作
小程序
,则承载它的小程序容器负责实例化它,并在适当的时间调用其上的生命周期方法(
init()
start()
stop()
销毁()。请特别注意,方法
main()
与作为
Applet
运行实例无关——它是直接在VM上作为应用程序运行类的入口点


另一方面,如果将类作为应用程序运行,则其
main()
方法中的任何内容都不会导致调用
init()
main()
方法甚至不能创建一个可以调用
init()
的实例。

你从来没有真正创建过
MyApplet
一个问题:你知道Applet是什么吗?你想要的是一个混合Applet/应用程序<作为应用程序运行时,必须从
main()
手动调用code>init()
。1)为什么要编写小程序代码?如果是老师指定的,请参考。2) 为什么要使用AWT?请参阅,了解放弃AWT使用组件而支持Swing的许多好理由。3) 小程序通常没有
main(String[])
方法,并且在正常的小程序执行过程中不会调用它。
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);
    }
}