javafx:如何将鼠标按下事件应用于循环中的 ImageView?
javafx: how to apply mousepressed event to ImageView(s) that is in a loop?
我已经创建了一个 foreach 循环,它创建了 ImageView 并使用 javafx 显示它们,但是将找到的每个 ImageView 都必须有类似鼠标按下的事件,我已经编写了一个方法,我只需要知道是将它应用于鼠标按下的 Imageview,我有点不知道如何应用它。
循环代码
private void setUpMovieContent() {
WebResponse response = RequestVideoFromServer.getAllList();
for (int i = 0; i < response.getMovies().length; i++) {
String imageUrl = response.getBaseURL() + response.getMovies()[i].getImageUrl();
Image img = new Image(imageUrl);
ImageView imgView = new ImageView(img);
imgView.setFitHeight(350);
imgView.setFitWidth(230);
Label lblTitle = new Label();
lblTitle.setText(response.getMovies()[i].getTitle());
lblTitle.setFont(Font.font(null,FontWeight.EXTRA_BOLD,20));
lblTitle.setStyle("-fx-font-size: 18px;");
lblTitle.setLayoutY(11);
lblTitle.setLayoutX(20);
VBox vb = new VBox();
vb.setLayoutX(5);
vb.setSpacing(5);
vb.getChildren().addAll(imgView, lblTitle);
hBox.getChildren().add(vb);
}
sp.setContent(hBox);
sp.setPrefSize(600,300);
sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);
sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);
stackPane.getChildren().add(sp);
}
imgView.setOnMousePressed(event -> {
// process click
});
我已经创建了一个 foreach 循环,它创建了 ImageView 并使用 javafx 显示它们,但是将找到的每个 ImageView 都必须有类似鼠标按下的事件,我已经编写了一个方法,我只需要知道是将它应用于鼠标按下的 Imageview,我有点不知道如何应用它。
循环代码
private void setUpMovieContent() {
WebResponse response = RequestVideoFromServer.getAllList();
for (int i = 0; i < response.getMovies().length; i++) {
String imageUrl = response.getBaseURL() + response.getMovies()[i].getImageUrl();
Image img = new Image(imageUrl);
ImageView imgView = new ImageView(img);
imgView.setFitHeight(350);
imgView.setFitWidth(230);
Label lblTitle = new Label();
lblTitle.setText(response.getMovies()[i].getTitle());
lblTitle.setFont(Font.font(null,FontWeight.EXTRA_BOLD,20));
lblTitle.setStyle("-fx-font-size: 18px;");
lblTitle.setLayoutY(11);
lblTitle.setLayoutX(20);
VBox vb = new VBox();
vb.setLayoutX(5);
vb.setSpacing(5);
vb.getChildren().addAll(imgView, lblTitle);
hBox.getChildren().add(vb);
}
sp.setContent(hBox);
sp.setPrefSize(600,300);
sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);
sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);
stackPane.getChildren().add(sp);
}
imgView.setOnMousePressed(event -> {
// process click
});