如何解决加工:你能在加工课之外画画吗?
我正在尝试将代码组织到可以在主处理类之外绘制的位置,但是,每当我尝试这样做时,我都会收到 NullPointerExeption
。
public class Processing extends papplet {
papplet p = new papplet();
Screen homeScreen = new Screen(new Vector2(0,0),p);
public static void main(String[] args) {
papplet.runSketch(new String[]{"Processing"},new Processing());
}
public void settings() {
// Setup
size(500,500);
TextBox t = new TextBox(new Vector2(0,new Vector2(300,300),new papplet());
homeScreen.addContent(t);
}
}
我正在调用如下所示的 display()
类中的 TextBox
方法。
public void display() {
// Text Box Body
p.pushmatrix();
p.fill(240);
p.rect(pos.getPos()[0],pos.getPos()[1],dimensions.getPos()[0],dimensions.getPos()[1]);
}
p
是通过构造函数传递的 papplet
对象。例外如下所示。
java.lang.NullPointerException
at processing.core.papplet.pushmatrix(papplet.java:13149)
at TextBox.display(Processing.java:154)
at Screen.display(Processing.java:83)
at Processing.draw(Processing.java:29)
at processing.core.papplet.handleDraw(papplet.java:2426)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1557)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)
Process finished with exit code 0
如果我注释掉 pushmatrix()
也会发生同样的错误,只需指向 fill()
函数即可。
感谢您的帮助!
解决方法
注意:您正在创建 PApplet
的多个实例,这会使您的代码混乱,并且您会遇到错误。 Processing
类已经扩展了 PApplet
,因此删除此行 PApplet p = new PApplet();
并将其替换为 Processing p = this;
,或者您可以使用 new Screen(new Vector2(0,0),p);
代替 this
像这样的关键字:new Screen(new Vector2(0,this);
- 谢谢@sorifiend
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。