package com.moviesdb; import javafx.fxml.FXML; import javafx.geometry.HPos; import javafx.geometry.Pos; import javafx.geometry.VPos; import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.control.Alert.AlertType; import com.moviesdb.Movie; import java.awt.event.MouseEvent; import java.time.chrono.AbstractChronology; public class Controller { @FXML AnchorPane browserPane; @FXML MenuItem menuNew; @FXML GridPane moviesGrid; @FXML ScrollPane scrollPane; @FXML AnchorPane detailsPane; @FXML Label detailsNameContent; @FXML Label detailsYearContent; @FXML Label detailsDurContent; @FXML Label detailsGenreContent; @FXML Label detailsDescContent; @FXML AnchorPane detailsPicPane; @FXML AnchorPane filterPane; Label[] movies; Movie my_movie; public void loadPosters() { my_movie = new Movie(); my_movie.setName("Back to the Future"); my_movie.setDuration("1:20"); my_movie.setDescription("The CSS styles for text input controls such as TextField for JavaFX 8 are defined in the modena.css stylesheet as below. Create a custom CSS stylesheet and modify the colors as you wish. Use the CSS reference guide if you need help understanding the syntax and available attributes and values."); my_movie.setCover("https://m.media-amazon.com/images/M/MV5BZmU0M2Y1OGUtZjIxNi00ZjBkLTg1MjgtOWIyNThiZWIwYjRiXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_UX182_CR0,0,182,268_AL_.jpg"); //get movies array movies = new Label[10]; //change grid size for number of movies for (int i = 0; i < 10; i++) { movies[i] = new Label(); ImageView image = new ImageView(new Image(getClass().getResourceAsStream("pic.jpg"))); image.setFitHeight(222); image.setFitWidth(150); movies[i].setGraphic(image); GridPane.setValignment(movies[i], VPos.CENTER); GridPane.setHalignment(movies[i], HPos.CENTER); Label movie = movies[i]; movies[i].setOnMouseClicked(e-> { openDetails(movie); }); } //moviesGrid.setPrefWidth(scrollPane.getWidth()); //clear old data in grid moviesGrid.getChildren().clear(); //moviesGrid.setAlignment(Pos.CENTER); //fill grid by movies moviesGrid.addRow(0, movies[0], movies[1]); moviesGrid.addRow(1,movies[4],movies[5]); moviesGrid.setPrefWidth(browserPane.getWidth()-26); moviesGrid.setPrefHeight(browserPane.getHeight()-50); } public void returnMessage() { Alert alert = new Alert(AlertType.CONFIRMATION, "Are you sure you want to format your system?"); alert.showAndWait().ifPresent(response -> { if (response == ButtonType.OK) { } }); } public void openDetails(Label e) { if (detailsPane.getMinWidth() < 1) { //detailsInfoPane = new AnchorPane(); //detailsPicPane.getChildren().clear(); detailsPane.setMinWidth(300); detailsNameContent.setText(my_movie.name()); detailsYearContent.setText(my_movie.year()); detailsDurContent.setText(my_movie.duration()); detailsGenreContent.setText(my_movie.genre()); detailsDescContent.setText(my_movie.description()); detailsPicPane.getChildren().clear(); //detailsPane.setMaxWidth(300); //Label movie = e; ImageView detailsImage = new ImageView(); ImageView image = new ImageView((my_movie.cover())); image.setFitHeight(222); image.setFitWidth(150); detailsImage = ((ImageView) image); detailsImage.setX((detailsPane.getWidth() - detailsImage.getFitWidth()) / 2 + 100); detailsImage.setY(0); //movie. detailsPicPane.getChildren().add(detailsImage); scrollPane.setMaxWidth(browserPane.getWidth()-26); scrollPane.setMaxHeight(browserPane.getHeight()-50); moviesGrid.setMaxWidth(browserPane.getWidth()-26); moviesGrid.setMaxHeight(browserPane.getHeight()-50); loadPosters(); } else { detailsPicPane.getChildren().clear(); detailsPane.setMinWidth(0); detailsPane.setPrefWidth(0); detailsPane.setMaxWidth(0); } } public void closeDetails() { detailsPicPane.getChildren().clear(); detailsPane.setMinWidth(1); detailsPane.setPrefWidth(1); } public void openFilter() { if (filterPane.getWidth() < 1) { //filterPane.maxWidth(300); filterPane.setMinWidth(300); filterPane.setPrefWidth(300); filterPane.setMaxWidth(300); //loadPosters(); } else { filterPane.setMinWidth(0); filterPane.setPrefWidth(0); filterPane.setMaxWidth(0); //loadPosters(); } } }