2012-10-10 60 views
2

我打算创建一个EventHandler类,它将处理我的JavaFX类中所有控件的所有类型的事件。如何实现一个可以处理JavaFX中任何EventType的真正自定义事件处理程序?

例如,我将自己的自定义事件处理类来处理操作事件通过以下方式,它只是正常工作:

userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler()); 
cmbBox.addEventHandler(ActionEvent.ACTION, new DataChangeHandler()); 
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler()); 

这里是我的custome事件处理类代码:

public class DataChangeHandler implements EventHandler<ActionEvent> {  
    public void handle(ActionEvent event) { 
      System.out.println("My Very Own Private Button Handler"); 
     }    
} 

但是,当我尝试将其中一个addEventHandlers更改为MouseEvent并通过以下方式修改主要EventHandler类时,它显示错误“接口事件处理程序不能多次使用不同的争论实现”:

userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler()); 
cmbBox.addEventHandler(MouseEvent.CLICKED, new DataChangeHandler()); 
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler()); 

public class DataChangeHandler implements EventHandler<ActionEvent>, EventHandler<MouseEvent> {  
    public void handle(ActionEvent event) { 
      System.out.println("My Very Own Private Button Handler - ACTIONEVENT"); 
     } 

     @Override 
    public void handle(MouseEvent arg0) { 
     System.out.println("My Very Own Private Button Handler - MOUSEEVENT"); 

    } 
} 

有没有其他办法可以达到这个目的?请帮忙。提前致谢。

回答

6

试试这个

public class DataChangeHandler implements EventHandler<Event>{ 
    @Override 
    public void handle(Event event) { 
     System.out.println("My Very Own Private Handler For All Kind Of Events"); 
    } 
} 
+0

它完美。谢谢Uluk。 – user1730159

相关问题