我正在尝试将lambda表达式附加到按钮上以触发方法。我想要在类的Main方法之外和方法之外的lambda。我已经导入了javafx.event.ActionEvent而不与java.awt.event.ActionEvent混淆。我可能不是以一种可以理解的方式来解释问题,但是希望代码会有所帮助。 注意:我试图在方法之外的方法中使用lambda表达式,只是为了查看它是否有效,但在a之外不起作用。
错误消息是“无法解析符号'setOnAction'”
package sample;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
public class DashboardController {
@FXML
private Label lblHidden;
@FXML
private Button btnReveal;
@FXML
void backToLogin(ActionEvent event) throws Exception{
Parent myRoot = FXMLLoader.load(getClass().getResource("login.fxml"));
Scene loginScence = new Scene(myRoot);
Stage myStage = (Stage)((Node)event.getSource()).getScene().getWindow();
myStage.setScene(loginScence);
myStage.setTitle("Login");
myStage.show();
//Lambda works though not need here - inside a method
btnReveal.setOnAction(e->{
lblHidden.setText("Lambda inside a method - works");
});
}
//Lambda doesn't work here - -- I want it to work here
btnReveal.setOnAction(e->{`enter code here`
lblHidden.setText("Lambda doesn't work here");
});
}