2016-05-10 56 views
0

我想从位于单独的视图/模式窗口下的监听器调用我的Java方法并执行它。这样我就可以在不重写代码的情况下使用我的方法。这对我来说是必要的,因为在某些情况下,我无法得到相同的结果。所以我想从单独的模式窗口调用onclick方法。 Vaadin如何做到这一点?我需要示例代码,真的不知道该怎么做?如何从Vaadin的另一个窗口调用onclick监听器

+0

它可以做到,只要抓住一个引用到你想要点击事件的对象。但没有任何代码很难解释... –

+0

您可能会给的任何示例? – DarioBB

+0

显示你的代码,在java中传递引用并不困难 –

回答

0

我认为你应该持有对你想调用它的方法的对象的引用。但更好的方法是使用接口并使用该接口传递对象。

public interface A { 

     public void theMethod(); 
} 

class B implements A { 

    public void theMethod(){ 
      //do something here 
    } 
} 

您可以将B的引用传递给持有侦听器的类,然后您可以调用您要调用的方法。

class YourWindow(){ 

    private A theInstance; 

    yourWindow(A instance) 
    { 
     theInstance = instance; 
    } 

     ... 
    void onClick(){ 
     ... 
     theInstance.theMethod(); 
     ... 
    } 

我建议你研究设计模式。

设计模式代表有经验的 面向对象软件开发人员使用的最佳实践。设计模式是 软件开发人员在软件开发过程中遇到的一般问题的解决方案。这些解决方案是通过在相当长的一段时间内由许多软件开发人员尝试和错误获得的。

使用Mediator和Observer在这种情况下非常有帮助。