gpt4 book ai didi

JavaFX TilePane 用户单击的图 block

转载 作者:行者123 更新时间:2023-12-01 21:47:53 25 4
gpt4 key购买 nike

我有一个TilePane,其中每个单元格(图 block )都包含电影的图像,例如: 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();
}

我的目标是让用户能够单击特定电影的“图像”,以显示有关该电影的更多详细信息。但我无法通过 f.e 做到这一点。 getPickResultsintersectedNodes 因为它只是一个图像。对于如何实现此功能的任何建议,我将不胜感激

编辑:

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

但是接下来会发生什么?我如何才能找到用户点击的“图像”到底是什么?

最佳答案

只需在 ImageView 上注册鼠标监听器:

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) {
FilmSearchResult film = filmInfoList.get(i);
Image searchItemImage = new Image(film.getImageURL());
ImageView searchItemImageView = new ImageView(searchItemImage);
searchItemImageView.setPreserveRatio(true);

searchItemImageView.setOnMouseClicked(e -> showDetails(film));

Platform.runLater(() -> {
searchmoviesTilePane.getChildren().add(searchItemImageView);
});
}
}

return null;
}
};


// ....

private void showDetails(FilmSearchResult film) {
// show details for film...
}

关于JavaFX TilePane 用户单击的图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35732682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com