0
我有一個TilePane
其中每個單元(瓦)包含影片的圖像,以FE:JavaFX的TilePane什麼瓷磚用戶點擊
在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.做到這一點。 getPickResults
和intersectedNodes
,因爲它只是一個圖像。我將感謝任何意見,我怎麼能實現此功能
編輯:
for(int j=0; j<searchmoviesTilePane.getChildren().size(); j++){
searchmoviesTilePane.getChildren().get(j).setOnMouseEntered(e -> searchmoviesItem_MouseEntered(e.getPickResult().toString()));
}
但下一步是什麼?我如何能夠找出用戶點擊的是什麼「圖像」?
只是每個圖像視圖註冊鼠標監聽器... –
是的,我能做到這一點,但接下來會發生什麼?假設我已經添加了「EDITED」段下的內容。問題是,我無法識別在'TilePane'中的'item'被點擊了 – user3529850