多个组件的相同 ActionEvent

Same ActionEvent for multiple components

我有这样的代码,

component1.setOnAction((ActionEvent event) -> {
           for(int i=0; i<=10; i++){
            System.out.println(i);
           }
        });

component2.setOnAction((ActionEvent event) -> {
           for(int i=0; i<=10; i++){
            System.out.println(i);
           }
        });

为了避免代码重复,我正在尝试类似的方法,

component1.setOnAction(action);
component2.setOnAction(action);

其中,

action = // how can i define the for loop here.

我试过了,

 ActionEvent action = new ActionEvent(Source, target); 

ActionEvent 构造函数要求提供源和目标(我不太清楚如何使用)。

我怎样才能做到这一点?

setOnAction() 需要 EventHandler,而不是 ActionEvent。没有什么能阻止您定义 EventHandler 并将其重新用于多个组件。

EventHandler predefinedHandler = (e) -> {
   for (int i = 0; i <= 10; i++) {
      System.out.println(i);
   }
};

component1.setOnAction(predefinedHandler);
component2.setOnAction(predefinedHandler);