首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程“动画线程”processing.core.PApplet$RendererChangeException中的异常

线程“动画线程”processing.core.PApplet$RendererChangeException中的异常
EN

Stack Overflow用户
提问于 2015-12-13 16:13:02
回答 2查看 911关注 0票数 0

我尝试在我的Mac上运行Eclipse中的Java类:

代码语言:javascript
复制
import processing.core.*;
import de.fhpotsdam.unfolding.*;
import de.fhpotsdam.unfolding.providers.Google;

public class LifeExpectancy extends PApplet {
    UnfoldingMap map;

    public void setup() {}

    public void draw() {
        size(800, 600, OPENGL);
        map = new UnfoldingMap(this, 50, 50, 700, 500, new Google.GoogleMapProvider());
    }
}

但我知道错误是:

代码语言:javascript
复制
Exception in thread "Animation Thread" processing.core.PApplet$RendererChangeException
    at processing.core.PApplet.size(PApplet.java:1789)
    at processing.core.PApplet.size(PApplet.java:1746)
    at module2.LifeExpectancy.draw(LifeExpectancy.java:16)
    at processing.core.PApplet.handleDraw(PApplet.java:2390)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:245)
    at processing.core.PApplet.run(PApplet.java:2260)
    at java.lang.Thread.run(Thread.java:745)

我在谷歌发现我需要将所有的OpenGL库添加到我的构建路径中。例如,这里:https://forum.processing.org/two/discussion/2931/build-in-eclipse-using-opengl-fails

我做了这件事,但还是犯了同样的错误。下面是我为该项目构建的路径:

请你告诉我,为了消除这个错误,我还能做些什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-13 16:16:49

您正在draw()函数中执行属于setup()函数的操作。具体来说,您应该只调用size() 一次,作为setup()函数的第一行。最重要的是,您可能只需要创建地图一次。

代码语言:javascript
复制
import processing.core.*;
import de.fhpotsdam.unfolding.*;
import de.fhpotsdam.unfolding.providers.Google;

public class LifeExpectancy extends PApplet {
    UnfoldingMap map;

    public void setup() {
        size(800, 600, OPENGL);
        map = new UnfoldingMap(this, 50, 50, 700, 500, new Google.GoogleMapProvider());
    }

    public void draw() {
        //draw your map
    }
}
票数 1
EN

Stack Overflow用户

发布于 2016-03-22 08:29:17

实际上,对于Processing3.x,上面的内容将不起作用,因为size()函数应该在not ()中调用,如下所示:

代码语言:javascript
复制
import processing.core.PApplet;

public class Template extends PApplet {

    public void settings() {

        size(800, 600, ...);
    }

    public void setup() {

    }

    public void draw() {

        background(0, 30, 0);
    }

    public static void main(String[] args) {

        PApplet.main(new String[] { Template.class.getName() });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34253197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档