В ответ на вашу попытку, event.getSource()
вернет виджет, к которому был прикреплен обработчик. В вашем случае абсолютная панель.
Тем не менее, если вы хотите прикрепить один и тот же обработчик ко всем вашим изображениям, ничто не мешает вам сделать это:
ArrayList<Image> listOfImages = ...
ClickHandler ch = new MyImageClickHandler();
for (Image img : listOfImages){
img.addClickHandler(ch);
}
Тем не менее, если вы все еще хотите добавить обработчик кликов на панель содержания изображения, учтите следующее:
Panel imgContainer = ...
ClickHandler ch = new ClickHandler(){
public void onClick(ClickEvent event){
Element e = Element.as(event.getNativeEvent().getEventTarget());
if("img".equalsIgnoreCase(e.getTagName())){
ImageElement img = ImageElement.as(e)
//Clicked on image. Do stuff.
}
}
}
// If your panel implements HasClickHandlers
imgContainer.addClickHandler(ch);
// Otherwise, use this
imgContainer.addDomHandler(ch, ClickEvent.getType());