gpt4 book ai didi

java - 将 MouseClick 事件从 Papplet 传播到对象类

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:49 24 4
gpt4 key购买 nike

所以,我正在使用 Eclipse 和处理来用 Java 进行一些较繁重的编码,但是我的派生类遇到了一些问题 -

我有一个直方图类,其成员变量parent是运行该程序的主要PApplet。处理已经有一个很好的 MouseClicked 事件,我希望我的直方图类能够拥有自己的 onclicked 方法。

所以这是一个大问题:如何让 MouseClicked 事件渗透到我的对象?

public RunOverview(PApplet p, float[] simBuckets, float[] pointBuckets, int xP, int yP, int len, int hi)
{
this.parent = p;
this.xPos = xP;
this.yPos = yP;
this.height = hi;
}
// SOMEHOW LISTEN FOR parent.MouseClicked()........

提前致谢!

最佳答案

现在,您的 RunOverview 类存储对 PApplet 的引用。您也可以执行相反的操作,让 PApplet 存储对 RunOverview 实例的引用!在构造函数中,您可以调用处理代码中定义的诸如 registerOverview(this) 之类的函数,以将引用保存在 PApplet 中。然后,当调用鼠标函数时,您可以直接从那里调用RunOverview的函数!

public RunOverview(PApplet p, float[] simBuckets, float[] pointBuckets, int xP, int yP, int len, int hi)
{
this.parent = p;
this.xPos = xP;
this.yPos = yP;
this.height = hi;
p.registerOverview(this);
}
public void mousePressed(int x, int y){}
public void mouseReleased(int x, int y){}

然后

RunOverview thingy;
void setup(){}
void draw(){}
void registerOverview(RunOverview view){
thingy = view;
}
void mousePressed(){
thingy.mousePressed(mouseX,mouseY);
}
void mouseReleased(){
thingy.mouseReleased(mouseX,mouseY);
}

请确保在执行其他操作之前注册它,否则您将遇到一些空指针异常。

关于java - 将 MouseClick 事件从 Papplet 传播到对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19610679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com