如何将值传递给调用该方法的 Controller 类中的新页的方法?

我有一个包含10部电影的窗格,每次用户点击电影缩略图时,我都有一种方法将用户带到门票页面,他们可以在其中选择要购买的门票数量。但是,当我从电影页面 Controller 调用电影对象时,我正在尝试弄清楚如何为调用票证页面的 Controller 类中传递 Film 对象。loadTicketPage


public class controller {

    public void initialize() {

        film1.setImage(getFilmFromList(0).getThumbnail());

        film2.setImage(getFilmFromList(1).getThumbnail());

        film3.setImage(getFilmFromList(2).getThumbnail());

        film4.setImage(getFilmFromList(3).getThumbnail());

        film5.setImage(getFilmFromList(4).getThumbnail());

        film6.setImage(getFilmFromList(5).getThumbnail());

        film7.setImage(getFilmFromList(6).getThumbnail());

        film8.setImage(getFilmFromList(7).getThumbnail());

        film9.setImage(getFilmFromList(8).getThumbnail());

        film10.setImage(getFilmFromList(9).getThumbnail());


    }


    public void loadTicketPage(Film film) {

        try {

            Parent root = FXMLLoader.load(getClass().getResource("ticketsPage.fxml"));


            Scene scene = new Scene(root);

            Stage stage = new Stage();


            stage.initModality(Modality.APPLICATION_MODAL);


            stage.setScene(scene);

            stage.setTitle("Ticket Page");

            stage.show();


        } catch (IOException e) {

            System.out.println(e);

        }

    }


    public void film1() {

        Double price = getFilmFromList(0).getPrice();

        String title = getFilmFromList(0).getFilmName();

        loadTicketPage(getFilmFromList(0));


    }


    public void film2() {

        Double price = getFilmFromList(1).getPrice();

        String title = getFilmFromList(1).getFilmName();

        loadTicketPage(getFilmFromList(1));

    }

}

public class TicketsPageController {

    public Label filmName;

    public Label filmDescription;


    public void initialize() {

        filmName.setText(film.getFilmTitle)

    }

}


POPMUISE
浏览 78回答 1
1回答

www说

在新的加载过程中,您可以从 中获取控制器并将胶片传递给它:PaneFXMLLoaderpublic void loadTicketPage(Film film){    try {        FXMLLoader loader = new FXMLLoader(getClass().getResource("ticketsPage.fxml"));        Scene scene = new Scene(loader.load());        Stage stage = new Stage();        stage.initModality(Modality.APPLICATION_MODAL);        stage.setScene(scene);        stage.setTitle("Ticket Page");        // get the controller and set the film        TicketsPageController controller = loader.getController();        controller.setFilm(film);        stage.show();    } catch (IOException e) {        e.printStackTrace();    }}假设您的控制器如下所示:public class TicketsPageController {    private Film film;    public Label filmName;    public Label filmDescription;    public void setFilm(Film film) {        this.film = film;        filmName.setText(film.getFilmTitle());    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java