我是java的新手(以及面向对象编程)。作为第一个java项目,我被指示启动并运行标记云引擎applet。所以我找到了WordCram以及使用PApplet的一小段代码,并认为我有一个轻松的时间......
但是,虽然我的代码本身不会产生任何错误,但在运行时会抛出以下内容:
Exception in thread "Animation Thread" java.lang.NullPointerException
at processing.core.PApplet.handleDraw(PApplet.java:2336)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)
at processing.core.PApplet.run(PApplet.java:2176)
at java.lang.Thread.run(Thread.java:722)
我有一大堆代码,而且我在这里发布所有内容都犹豫不决......但是在尝试深入了解我的代码的过程中,我总是对查询器的代码很少感到沮丧给出:所以我会暂时将其粘贴到此处,我会留意让人们告诉我重新格式化或编辑部分或大部分内容。
两个班级中的第一个:
package tagengine;
import java.awt.*;
public class TagFrame extends Frame {
public TagFrame()
{
super("Embedded PApplet");
Engine embed = new Engine();
setLayout(new BorderLayout());
add(embed, BorderLayout.CENTER);
embed.init();
}
public static void main(String[] args)
{
TagFrame tagFrame = new TagFrame();
}
}
第二个:
package tagengine;
import processing.core.PApplet;
import processing.core.PFont;
import processing.core.PVector;
import wordcram.*;
public class Engine extends PApplet {
@Override public void setup() {
this.size(900, 500);
this.colorMode(HSB);
this.noLoop();
this.setVisible(true);
}
@Override public void draw() {
this.background(68);
new WordCram(this)
.fromWebPage("http://en.wikipedia.org/wiki/Barcamp")
.withColors(color(0, 0, 0),
color(0, 0, 255),
color(30, 255, 255)) // mustard, red)
.withFonts(PFont.list())
.withAngler(moreRandomByWeight())
.withPlacer(crazyPlacer())
.sizedByWeight(8, 100)
.maxNumberOfWordsToDraw(300)
.drawAll();
}
WordAngler moreRandomByWeight() {
return new WordAngler() {
@Override public float angleFor(Word w) {
float range = (1 - w.weight) * PI;
return random(-range, range);
}
};
}
WordPlacer crazyPlacer() {
return new WordPlacer() {
@Override public PVector place(Word w, int rank, int words,
int ww, int wh, int fw, int fh) {
float x = (fw - ww) * (1 - w.weight);
float y = random(fh - wh);
return new PVector(x, y);
}
};
}
@Override public void mousePressed() {
redraw();
}
}
答案 0 :(得分:0)
您在调用Engine
之前将BorderLayout
添加到init()
,看起来立即执行绘制操作正试图在Engine
之前执行{1}}已准备就绪。