为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

POPMUISE 2022-08-17 10:44:38
我有一个包含10部电影的窗格,每次用户点击电影缩略图时,我都有一种方法将用户带到门票页面,他们可以在其中选择要购买的门票数量。但是,当我从电影页面 Controller 调用电影对象时,我正在尝试弄清楚如何为调用票证页面的 Controller 类中传递 Film 对象。loadTicketPagepublic 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)    }}
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

在新的加载过程中,您可以从 中获取控制器并将胶片传递给它:PaneFXMLLoader


public 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());

    }

}


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号