【问题标题】:Processing: Can you draw outside of the Processing Class?处理:你能在处理类之外画画吗?
【发布时间】:2021-05-10 03:31:56
【问题描述】:

我正在尝试将代码组织到可以在主处理类之外绘制的位置,但是,每当我尝试这样做时,我都会收到 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, 0), new Vector2(300, 300), new PApplet());
        homeScreen.addContent(t);
    }
}

我正在调用TextBox 类中的display() 方法,如下所示。

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 对象。 Exeption 如下所示。

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, 0), this);

标签: java function class processing jetbrains-ide


【解决方案1】:

警告:您正在创建PApplet 的多个实例,这会使您的代码混乱,并且您会遇到错误。 Processing 类已经扩展 PApplet,所以删除这一行 PApplet p = new PApplet(); 并将其替换为 Processing p = this; 或代替 new Screen(new Vector2(0, 0), p); 您可以使用 this 关键字,如下所示:new Screen(new Vector2(0, 0), this); - 谢谢@sorifiend

【讨论】:

    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多