Java错误:无法在Eclipse中强制转换为java.applet.Applet

所以这里是非常简单的代码,不能在Eclipse中编译:

import processing.core.*;

public class MyPApplet extends PApplet {
}

我正在尝试将其作为Java Applet运行,但我收到错误:

java.lang.ClassCastException: MyPApplet cannot be cast to java.applet.Applet

问题是PApplet是一个来自处理包的类,它扩展了java.applet.Applet,MyPApplet扩展了PApplet,但我仍然遇到这个错误.这没有道理.为什么不能将MyPApplet强制转换为java.applet.Applet?

有人可以帮忙吗?

解决方法:

就像George说的那样,PApplet不再像处理3那样扩展Applet.

但是,我建议使用runSketch()函数来运行草图,而不是回到旧版本的Processing:

public class MyPapplet extends PApplet {

  public static void main(String... args){
    String[] pArgs = {"MyPapplet "};
    MyPapplet mp = new MyPapplet ();
    PApplet.runSketch(pArgs, mp);
  }

  public void settings() {
    size(200, 100);
  }
  public void draw() {
    background(255);
    fill(0);
    ellipse(100, 50, 10, 10);
  }
}

如果您确实需要访问底层本机组件,则必须编写取决于您正在使用的渲染器的代码.以下是使用默认渲染器的方法:

PSurfaceAWT awtSurface = (PSurfaceAWT)mp.surface;
PSurfaceAWT.SmoothCanvas smoothCanvas = (PSurfaceAWT.SmoothCanvas)awtSurface.getNative();

但对于大多数人来说,第一种方法应该足够好,所以先尝试一下.

上一篇:Processing 串口GUI


下一篇:Image Processing for Embedded Devices <4>