Class foo
{
public void functionA()
// do stuff
}
class bar
{
private foo fooClass = new foo();
private listener on foo.functionA() call
{
// do stuff
}
}我想知道的是这是否可能。
我目前正在使用javafx,我有一个包含一堆柱面的组,当一个柱面被拖动时,我想从场景图中上面的节点调用一个函数。问题是我不确定柱面会深入场景图多远,所以调用.getParent()可能不是最好的做法。
我正在考虑的主要问题是监听器监听柱面内事件的可能性。
我不确定这是否是最好的解释,所以如果它令人困惑的话,很抱歉。
本质上,当一个侦听器被调用时,我正在尝试编辑一个类。我试图编辑的类可以访问listener类,但反之亦然。
发布于 2015-08-27 20:24:36
我通过将eventHandler发送到较低的对象侦听器修复了这个问题。
示例:
class foo
{
public void setListeners(EventHandler handler)
{
this.setListener(handler);
}
}
class bar
{
foo fooObject = new foo();
EventHandler eventH = new eventhandler()
{
@override
public void handle(event args)
{
functionToDo();
}
};
private void functionToDo(){ do stuff }
// call in some method
{
fooObject.setListeners(eventH);
}
}现在,当foo中的侦听器被调用时(这可以通过多种方式来完成,但对于我的项目来说,它是一个拖动操作),functionToDo将在bar中被调用。
我相信有更好的解决方法,但这对我很有效。
https://stackoverflow.com/questions/32243707
复制相似问题