在Processing

时间:2017-03-28 10:04:30

标签: java object processing

我想做以下事情并且不知道如何做到,也许有人可以提供帮助:

我想在Processing中编写一个小型库,它使面向对象的编程概念可供学生使用。我会给你一个简单的例子:

在处理过程中,我可以通过输入

在草图中的某处创建一个点
point(30, 30);
point(20, 20);

等等。我想要实现的是将这些函数包装到我自己的类中,例如

class Point {
  float xPos;
  float yPos;

  Point(float x, float y) {
    xPos = x;
    yPos = y;
    point(x, y);
  }
}

Point p = new Point(10,10);

这可能听起来很愚蠢,但这样我可以更好地使用面向对象的方法。

我现在的问题如下:让我说我建立了几十个这样的课程并希望在图书馆中使用它们,以便学生可以简单地使用

import myLibrary:
Point P = new Point(10, 10);

我该怎么做?我知道官方网站上有一个教程,它显示了在Eclipse中创建一个简单的库,但是我不能在Java中使用任何处理函数,可以吗?我想我的点类的构造函数不会因此而起作用。

我感谢任何帮助

rikojir

3 个答案:

答案 0 :(得分:1)

如果要将类包装为Processing Java库,则应遵循Processing Library Template存储库中的说明。

与您正常编译Java库的方式相比,它有点冗长,但如果您计划将它与Processing的贡献管理器一起使用,那么这就是您的选择。

如果您只想进行快速测试,请将其保持脱机/手动安装,请按照典型的java说明编译.jar。 (Eclipse使这更容易)。 请记住,您仍然需要遵循处理库设置:

  1. 如果您需要使用库名称中的任何符号,请使用下划线(不要使用破折号,点或其他符号)
  2. 将.jar文件放在右侧文件夹中(库名称与.jar文件名匹配:~/Documents/Processing/libraries/YourAwesomeLibrary/library/YourAwesomeLibrary.jar

答案 1 :(得分:1)

  

我知道官方网站上有一个教程,它显示了在Eclipse中创建一个简单的库,但是我不能在Java中使用任何处理函数,是吗?

当然可以。阅读this tutorial以及George的回答,了解如何做到这一点的指南。基本上,您可以将Processing用作Java库,这样您就可以使用Java访问Processing的类和函数。您可以用Java编写库,将其导出为.jar文件,然后使用George的答案或将.jar文件直接拖到Processing editor上将其添加到Processing sketch中。

  

我想我的点类的构造函数不会起作用。

您必须将Processing草图的实例传递给Point构造函数,并使用它来访问Processing的函数。像这样:

class Point {
  float xPos;
  float yPos;
  PApplet sketch;

  Point(float x, float y, PApplet sketch) {
    xPos = x;
    yPos = y;
    this.sketch = sketch;
  }

  void drawMe(){
    sketch.point(xPos, yPos);
  }
}

然后在草图中,您将使用this关键字传递对库代码的自引用:

Point p = new Point(10, 10, this);
p.drawMe();

您也可以考虑为Point类使用单独的标签而不是整个外部库。

答案 2 :(得分:0)

你可以实现它只需要创建一个jar文件但是在创建jar文件之前不要忘记将所有类添加到单个包中org,在创建jar文件之后你可以添加它到你的类路径,你可以使用它。 如果您使用的是ecllipse,那么请查看here如何在其中使用您的jar文件。