我有一个TilePane
,其中每个单元格(平铺)包含一个电影的图像,所以f.e。:
在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.做到这一点。 getPickResults
和intersectedNodes
,因为它只是一张图片。我会感谢任何有关如何实现此功能的建议
编辑:
for(int j=0; j<searchmoviesTilePane.getChildren().size(); j++){
searchmoviesTilePane.getChildren().get(j).setOnMouseEntered(e -> searchmoviesItem_MouseEntered(e.getPickResult().toString()));
}
但下一步是什么?我怎么能找出究竟是什么&#34;图像&#34;用户点击了吗?
答案 0 :(得分:3)
只需在图像视图上注册鼠标侦听器:
{{1}}