Java 错误 : cannot cast to java. applet.Eclipse 中的 Applet

标签 java eclipse applet processing

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

import processing.core.*;

public class MyPApplet extends PApplet {
}

我试图将它作为 Java Applet 运行,但出现错误:

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

问题是 PAppletprocessing 包中的一个类,它扩展了 java.applet.AppletMyPApplet 扩展了 PApplet,但我仍然遇到此错误。这没有道理。为什么不能将 MyPApplet 转换为 java.applet.Applet

有人可以帮忙吗?

最佳答案

正如 George 所说,从 Processing 3 开始,PApplet 不再扩展 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);
  }
}

如果您确实需要访问底层 native 组件,则必须根据您使用的渲染器编写代码。以下是使用默认渲染器的方法:

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

但是第一种方法对大多数人来说应该足够好了,所以先试试吧。

关于Java 错误 : cannot cast to java. applet.Eclipse 中的 Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34716460/

相关文章:

java - 通过 applicationcontext.xml 将值列表注入(inject)通用列表?

eclipse自动格式化: How to stop new line after dot of method call?

java - Tomcat V8 无法在 Eclipse 中启动 - 严重 : A child container failed during start

java - 使用按钮将 arraylist 元素添加到文本字段

java - 将 Java Applet 限制为只有一个实例

java - QuickBlox customObject 更新多条记录权限

java - 常规和 Spring 抽象的 Ignite 事务失败,并在手动重新连接后出现 IllegalStateException,并将 clientReconnectDisabled 设置为 true

java - org.jboss.weld.exceptions.DeploymentException WELD-001409 : Ambiguous dependencies for type X with qualifiers @Default

eclipse - 如何获取 Eclipse 的主机 OSGI 控制台

java - 减少小程序中读取excel文件