作爲對您的嘗試的迴應,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());