如何在创建按钮的相同方法中设置按钮的动作?
我想要的方法将是这样的:
private void buttonsCreation() {
//----------------creation of interactive buttons with text-----------------
Button buttonForLoad = new Button("Load footage file");
Button buttonForSave = new Button("Save footage file");
Button buttonForSaveAs = new Button("Save as footage file");
ButtonbuttonForRun = new Button("Run footage animation");
Button buttonForTerminate = new Button("Stop footage animation");
Button buttonForEditMenu = new Button("Edit current footage");
//---------------setting the interaction of the buttons---------------------
buttonForLoad.setOnAction(loadFootage());
buttonForSave.setOnAction(saveFootage());
buttonForSaveAs.setOnAction(saveAs());
buttonForRun.setOnAction(runAnimation());
buttonForTerminate.setOnAction(terminateAnimatino());
buttonForEditMenu.setOnAction(editMenu());
}
我希望setOnAction的属性调用这些方法,但是我收到此错误。 ButonBase中的setOnAction不能应用于void。
我知道我可以使用ActionEvent作为参数来创建一个空句柄并使它工作,但是我想要的函数将在一个函数中,并且如果可能的话,可以使用最少的代码行。
非常感谢
最佳答案
要在动作处理程序中调用void函数,lambda表达式很有用。像这样:
buttonForLoad.setOnAction(e -> loadFootage());
buttonForSave.setOnAction(e -> saveFootage());
...