JavaFX TilePane用户点击了哪些图块

时间:2016-03-01 20:21:44

标签: java javafx

我有一个TilePane,其中每个单元格(平铺)包含一个电影的图像,所以f.e。:enter image description here

在Java中它看起来像这样:

    public void searchMovieBtn_Clicked(){

        searchmoviesTilePane.getChildren().clear();
        MoviesAPI mvAPI = new MoviesAPI();
        List<FilmSearchResult> filmInfoList = mvAPI.findFilm(searchmovieTextField.getText());

        Task task = new Task<Void>() {
            @Override public Void call() {
                for(int i=0; i<filmInfoList.size(); i++){
                    updateProgress(i+1, filmInfoList.size());
                    if(filmInfoList.get(i).getImageURL() != null) {
                        Image searchItemImage = new Image(filmInfoList.get(i).getImageURL());
                        ImageView searchItemImageView = new ImageView(searchItemImage);
                        searchItemImageView.setPreserveRatio(true);
                        Platform.runLater(() -> {
                            searchmoviesTilePane.getChildren().add(searchItemImageView);
                        });
                    }
                }

                return null;
            }
        };
        progressIndicator.progressProperty().bind(task.progressProperty());
        new Thread(task).start();
}

我的目标是让用户能够点击&#34;图像&#34;与特定的电影,以显示有关这部电影的更多细节。但我无法通过f.e.做到这一点。 getPickResultsintersectedNodes,因为它只是一张图片。我会感谢任何有关如何实现此功能的建议

编辑:

for(int j=0; j<searchmoviesTilePane.getChildren().size(); j++){
                searchmoviesTilePane.getChildren().get(j).setOnMouseEntered(e -> searchmoviesItem_MouseEntered(e.getPickResult().toString()));
            }

但下一步是什么?我怎么能找出究竟是什么&#34;图像&#34;用户点击了吗?

1 个答案:

答案 0 :(得分:3)

只需在图像视图上注册鼠标侦听器:

{{1}}