如何从applet中的另一个方法调用重绘?

| 我正在用Java编写游戏(小程序),并且有两个正在运行的线程。一个线程在主类中运行,而另一个线程是一个单独的类,该类在公共变量类中绘制图形变量,以供所有其他类读取。 (主类读取图形变量并可以将其绘制(作为图像)。) 我希望能够从另一个类调用主applet的repaint()方法,但是我不知道该怎么做,因为调用\“ Main_applet_class \”。repaint()方法会导致\ “您无法从静态上下文调用此方法”错误。帮帮我!
已邀请:
您需要对要在其上调用方法的对象的引用。一种方法是通过调用类中的构造函数参数将主applet对象传递给调用类。请注意,这与GUI编程无关,而与基本Java无关。 例如:
import javax.swing.JApplet;

public class FooApplet extends JApplet {
   public void init() {
      try {
         javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
               createGUI();
            }
         });
      } catch (Exception e) {
         System.err.println(\"createGUI didn\'t successfully complete\");
      }
   }

   private void createGUI() {
      OtherClass otherClass = new OtherClass(this);

   }
}

class OtherClass {
   private FooApplet fooApplet;

   public OtherClass(FooApplet fooApplet) {
      this.fooApplet = fooApplet;  // now I can call methods on the FooApplet object
   }

   public void myMethod() {
      // ... some code here...
      fooApplet.repaint(); // now that I have a valid ref I can call repaint
   }
}

要回复问题请先登录注册