我有这样的代码,
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 = //我如何在这里定义for循环。
我试过了,
ActionEvent action = new ActionEvent(Source, target);
ActionEvent
构造函数请求源和目标(我不清楚如何使用)。
我怎样才能实现这个目标?
答案 0 :(得分:3)
setOnAction()
需要EventHandler
,而不是ActionEvent
。没有什么能阻止您定义EventHandler
并将其重用于多个组件。
EventHandler predefinedHandler = (e) -> {
for (int i = 0; i <= 10; i++) {
System.out.println(i);
}
};
component1.setOnAction(predefinedHandler);
component2.setOnAction(predefinedHandler);