繁体   English   中英

倾听听众

[英]Listening for a listener

Class foo
{
    public void functionA()
    // do stuff
}

class bar
{
    private foo fooClass = new foo();

    private listener on foo.functionA() call
    {
         // do stuff
    }
}

我想知道的是,是否有可能。

我目前正在使用javafx,我有一个包含一堆圆柱体的组,当拖动圆柱体时,我想从场景图中上方的节点调用函数。 问题是我不确定圆柱体将要进入场景图形的距离,因此调用.getParent()可能不是最佳方法。

我要考虑的主要问题是听众有可能在圆柱体内监听事件。

我不确定这是否是最好的解释,如果造成混淆,请您谅解。

本质上,我在尝试调用侦听器时尝试编辑一个类。 我尝试编辑的类可以访问侦听器类,反之则不能。

我通过将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中调用。

我确定有更好的解决方案,但这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM