我不确定这是否值得提出疑问,但确实如此。
如果我有一些课程,可以说
public class myClass{
Button btn = new Button;
btn.setOnMouseEvent(myHandler);
Text txt = "hello";
}
现在,如果用户触发了事件,我将在myHandler中执行一些代码。在这里,我需要访问txt
变量,但是我只能通过button
来引用event.getSource()
。
那么,如何获得对包含event.getSource()
返回的对象beeing的类的引用?
编辑:也欢迎您提供有关标题的想法!
答案 0 :(得分:1)
答案实际上很简单:
当事件处理程序实例X依赖于某些Y对象时,则需要使Y可用于X。
例如:
new X(someY);
时传递一个Y实例换句话说:当您的MyClass(类名称应为UpperCase!)实例化myHandler
对象时,它可以将“自身”(通过this
传递给处理程序)。当然,这可能导致循环依赖(不良),这是一种解决方法:
SomeInterface
SomeInterface
,而从不知道或不在乎传递给它的SomeInterface
实例...恰好是Y类型。答案 1 :(得分:0)
If you are the one who crated MyHandler and if you can still modify the class then below style can be helpfull:
public class myClass{
Button btn = new Button;
Text txt = "hello";
MyHandler myHandler = new MyHandler();
myHandler.setMsg(txt );
btn.setOnMouseEvent(myHandler);
}
class MyHandler {
private msg;
public setMsg(String msg){
this.msg = msg;
}
}