提问者:小点点

如何使用公共类frome.java文件在其他处理选项卡?


我的问题似乎很琐碎,但经过2小时的谷歌搜索,我一无所获。我有处理草图。第一个主选项卡包含:

Foo bar;

void setup() {
}

void draw() {
}

二是Foo.java文件:

package processing.core;
import java.io.Serializable;
import processing.core.PApplet;

public class Foo implements Serializable {
}

在我尝试运行这个程序后,我看到了第一个文件的第一行:

Cannot find a class or type "Foo"

第二个文件是Foo.java的,第一个文件有一些随机的名字,甚至不是同名的,所以这不是冲突。并且该文件与主pde文件位于同一目录中。

我在加工IDE工作。

我应该怎么做才能使.java文件类可见?是的-我需要.java文件,因为我需要使用一些更复杂的.java文件…

提前谢谢你!


共3个答案

匿名用户

好吧,在论坛上询问processing.org一个人给我看了代码,这是可行的,在比较它们后,我发现,我有毫无意义的行:

package processing.core;

这会导致问题!

所以正确的代码:

某事. pde:

Foo bar;

void setup() {
}

void draw() {
}

Foo.java:

import java.io.Serializable;
import processing.core.PApplet;

public class Foo implements Serializable {
}

http://forum.processing.org/two/discussion/comment/12111#Comment_12111

:)然而——谢谢你们俩的帮助!

匿名用户

要使用classFoo,您实例化它的类必须在同一个包中或者必须导入。

因此,您必须使用:

import processing.core.Foo;

匿名用户

接下来是一个工作示例,展示了如何与画布交互:

Foo bar;

void setup() {
  fill(255);
  background(0);
  textAlign(CENTER,CENTER);
}

void draw() {
}

void mouseReleased(){
  bar = new Foo(this);
}
import java.io.Serializable;
import processing.core.PApplet;

public class Foo implements Serializable {

  protected final PApplet parent;
  Foo(PApplet pa) {
    parent=pa;
    pa.text("Foo created",parent.width/2,parent.height/2);
    pa.noLoop();
  }
}

可以在这里找到与此布局相关的解释。接下来引用好的部分,由GoToLoop解释:

  • 处理框架,最基本的形式是PApplet类加上一个绘图画布。
  • 函数settings()、draw()、mouseP的()等是其“动画”线程的回调。
  • “草图”本身扩展了PApplet,它是一个完整的Java类实例。
  • 为了访问画布,我们需要该实例的引用/指针。
  • 因此,为了让库或其他顶级类能够绘制任何东西,它必须请求该引用。

我希望这能有所帮助,

Kf