当我在 Java 中使用 Applet 时如何调用特定的 class 一次

How to call a particular class once when I am using Applet in Java

package Program1;

import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.Scanner;

public class Demo extends Applet{
    static int i=0;

    public static void test(){
        i=50;
        System.out.println("This is my static method");
    }


    public void paint (Graphics g)  {
        test();
        g.drawOval (60, 20, i, i);
    }

}

我有两种方法绘画和测试。我只想执行一次测试方法,这将初始化 i 的值,并且我将在 paint 方法中使用它。但问题是当我执行程序时它调用文本方法一次,当我重新调整小程序的大小时 window 它一次又一次地调用该测试方法。

对于我的程序,文本方法会进行大量计算,因此调用测试方法只是为了一次又一次地赋值并不是一个好的选择。如何只调用该 Demo class 一次?

使用构造函数class我可以调用一次这个测试方法。

package Program1;

import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.Scanner;

public class Demo extends Applet{
    static int i=0;

    public static void test(){
        i=50;
        System.out.println("This is my static method");
    }

    public Demo(){
        test();
    }


    public void paint (Graphics g)  {

        g.drawOval (60, 20, i, i);
    }

}
package Program1;

import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.Scanner;

public class Demo extends Applet{
    static int i=0;
    boolean hasRun = false;

    public Demo (){
       this.test();
       this.hasRun = true;
    }

    public static void test(){
        if (hasRun==false){
           i=50;
           System.out.println("This is my static method");
        }
    }


    public void paint (Graphics g)  {
        test();
        g.drawOval (60, 20, i, i);
    }

}

如果您不希望 Demo 具有构造函数,则创建一个调用的方法并在初始化后调用它。

public void setFlag() {
   hasRun = false;
}

您可以使用Applet class init() 方法..这是专门为此目的提供的。