Java处理我可以同时有两个draw()方法运行吗?
Java Processing can I have two draw() methods running at the same time?
所以如果我有 class
class A extends PApplet{
float x;
float y;
public A(float x, float y){
this.x = x;
this.y = y;
}
public void draw(){
ellipse(x,y,10,10);
}
}
还有一个class
class B extends PApplet{
A a = new A(12,19);
public void draw(){
ellipse(25,25,25,25);
}
}
只会绘制B
中的椭圆。这是有两种绘制方法的问题吗?如果不是,问题是什么?有没有一种方法可以让两个省略号都出现?这可能与线程有关吗?我读过一些关于它们的资料,但从未使用过它们,所以如果是这样,请也解释一下线程。
如果要使用线程,可以使用Thread
class。线程就像同一程序中的不同进程。但是,它们可以共享相同的内存——这意味着它们可以使用相同的变量(与不共享内存的进程不同)。然后你就有了如何正确使用线程的整个问题,你可以看到更多:here
下面是一个如何使用线程的简单示例:
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//your code
}
});
t.run();//don't forget to run!
这样想:只有一张草图可以是你"main"草图。那是调用了 draw()
函数的草图。处理自动调用此函数。如果您使用的是 eclipse 之类的软件,则在调用 main()
方法时指定主草图。
综上所述,最简单的方法可能是简单地从 B.draw()
调用 A.draw()
。
如果您这样做,您的 A
class 不应扩展 PApplet
。只需传入 B PApplet
并改用它。把它们放在一起:
class A{
float x;
float y;
PApplet myPApplet;
public A(float x, float y, PApplet myPApplet){
this.x = x;
this.y = y;
this.myPApplet = myPApplet;
}
public void draw(){
myPApplet.ellipse(x,y,10,10);
}
}
class B extends PApplet{
A a = new A(12,19, this);
public void draw(){
ellipse(25,25,25,25);
a.draw();
}
}
将每个 PApplet
视为一个 单独的 window。如果你想要一个 window,那么你应该只有一个 PApplet
.
所以如果我有 class
class A extends PApplet{
float x;
float y;
public A(float x, float y){
this.x = x;
this.y = y;
}
public void draw(){
ellipse(x,y,10,10);
}
}
还有一个class
class B extends PApplet{
A a = new A(12,19);
public void draw(){
ellipse(25,25,25,25);
}
}
只会绘制B
中的椭圆。这是有两种绘制方法的问题吗?如果不是,问题是什么?有没有一种方法可以让两个省略号都出现?这可能与线程有关吗?我读过一些关于它们的资料,但从未使用过它们,所以如果是这样,请也解释一下线程。
如果要使用线程,可以使用Thread
class。线程就像同一程序中的不同进程。但是,它们可以共享相同的内存——这意味着它们可以使用相同的变量(与不共享内存的进程不同)。然后你就有了如何正确使用线程的整个问题,你可以看到更多:here
下面是一个如何使用线程的简单示例:
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//your code
}
});
t.run();//don't forget to run!
这样想:只有一张草图可以是你"main"草图。那是调用了 draw()
函数的草图。处理自动调用此函数。如果您使用的是 eclipse 之类的软件,则在调用 main()
方法时指定主草图。
综上所述,最简单的方法可能是简单地从 B.draw()
调用 A.draw()
。
如果您这样做,您的 A
class 不应扩展 PApplet
。只需传入 B PApplet
并改用它。把它们放在一起:
class A{
float x;
float y;
PApplet myPApplet;
public A(float x, float y, PApplet myPApplet){
this.x = x;
this.y = y;
this.myPApplet = myPApplet;
}
public void draw(){
myPApplet.ellipse(x,y,10,10);
}
}
class B extends PApplet{
A a = new A(12,19, this);
public void draw(){
ellipse(25,25,25,25);
a.draw();
}
}
将每个 PApplet
视为一个 单独的 window。如果你想要一个 window,那么你应该只有一个 PApplet
.