Lambda表达式button.setOnAction在Main类之外不起作用

时间:2019-05-26 17:22:41

标签: javafx

我正在尝试将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");
    });

}

0 个答案:

没有答案