Лямбда-выражение button.setOnAction не работает вне класса Main - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь прикрепить лямбда-выражение к кнопке, чтобы запустить метод. Я хочу, чтобы лямбда находилась вне метода Main класса и вне метода. Я импортировал javafx.event.ActionEvent, чтобы не перепутать с java.awt.event.ActionEvent. Возможно, я не объясняю проблему понятным способом, но, надеюсь, код поможет. Примечание. Я пытался использовать лямбда-выражения внутри метода, вне метода, просто чтобы посмотреть, работает ли он, но не работает ли он вне.

Сообщение об ошибке: «Не удается разрешить symbol'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");
    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...