Я делаю систему бронирования в кинотеатре / кинотеатре.
У меня есть список кнопок, настроенный для отображения списка фильмов, воспроизводимых на домашней странице.Я пытаюсь сделать функцию, которая, когда мы нажимаем одну из кнопок на домашней странице, она меняет сцену, где вы можете увидеть полную информацию о фильме.
Проблема в том, что он всегда показывает толькопервый фильм в моем списке фильмов.
Я попытался установить какой-то указатель для идентификации каждой кнопки.
Вот объекты:
filmPointer startв 1, потому что filmNumber начинается в 1, также я могу увидеть ошибку, если я установлю ее 0
private static List<User> userList = User.getList();
private static List<Film> filmList = Film.getList();
private static ArrayList<Button> allFilmLink = new ArrayList<>();
public static int filmPointer = 1, accountPointer;
Функция показа кнопки с изображениями на домашней странице:
public void filmListContent(){
mainPane.setContent(filmListPane);
for (int x = 0; x < filmList.size(); x++) {
Button listFilmButton = new Button();
listFilmButton.setPrefHeight(300);
listFilmButton.setPrefWidth(250);
int finalX = x;
listFilmButton.setOnAction(actionEvent -> {
mainWindow.setScene(currentFilmScene); //open film detail
filmPointer = filmList.get(finalX).getNumberFilm();
});
imageFilm = new Image(getClass().getResourceAsStream(filmList.get(x).pathPictureFilm), 250, 350, false, false);
listFilmButton.setGraphic(new ImageView(imageFilm));
allFilmLink.add(listFilmButton);
}
showFilmLink();
}
Вот код, который есть у меня в другом классе, где я настроил сцену и ее функции:
private void createFilmScene(){
Text filmTitle = null;
filmPane = new GridPane();
HBox titleHB;
for (int x = 0; x < filmList.size(); x++) {
if (filmList.get(x).getNumberFilm() == Main.filmPointer) {
filmPictureStream = new Image(getClass().getResourceAsStream(filmList.get(x).getPathPictureFilm()));
filmPictureView = new Label("", new ImageView((filmPictureStream)));
filmTitle = new Text(filmList.get(x).getTitle());
}
}
filmTitle.setFont(Font.font("Times New Roman", FontWeight.BOLD, 30));
titleHB = new HBox(11);
titleHB.setAlignment(TOP_CENTER);
titleHB.getChildren().add(filmTitle);
filmPane.add(titleHB, 5, 19);
filmPane.add(filmPictureView, 2, 2, 2, 2); // placement not final
filmPane.setHgap(5);
filmPane.setVgap(15);
}
Если я нажму на 47 метров вниз, я ожидаю, что сцена изменится, а затем детализирует фильм, который я нажимаю.Но это всегда показывает ЭТО Глава 2.
Моя домашняя страница: Imgur Link
Моя страница с подробностями фильма, когда я нажимаю на 47 метров вниз: Imgur Link