2012-10-15 2 views
0

이미지 아래에 이미지와 텍스트로 구성된 MenuButton이 있습니다. 모든 것은 다음과 같이 구축되어java gwt clickhandler

ImageResource icon = ...; 
    final Element span = DOM.createSpan(); 

    Image image = new Image(icon); 
    span.insertFirst(image.getElement()); 

    Element div = DOM.createDiv(); 
    div.setInnerHTML(text); 

    span.insertAfter(div, span); 

    image.sinkEvents(Event.ONCLICK); 

    getElement().insertFirst(span); 

click 이벤트는 다음과 같이 발표자로 설정됩니다

 ... 
     private void bindEvents() { 
     display.getButton().addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 
       Window.alert("test"); 
      } 
    }); 

click 이벤트 작동 단지 부분적으로, 나는 이미지에서 텍스트를 클릭하면 클릭 이벤트가 잘 작동하지만 이미지를 클릭하면 클릭이 수행되지 않습니다!

+0

모든 것이 잘 설명되어 있습니다. http://stackoverflow.com/a/10153663/921244 –

답변

1

다른 접근 방식 :

FlowPanel myButton = new FlowPanel(); 
myButton.add(new Image(icon)); 
myButton.add(new Label(myButtonText)); 

ClickHandler h = new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
     // do something 
    } 
}; 
myButton.addDomHandler(h, ClickEvent.getType()); 

이 모두 이미지에 클릭 이벤트와 그 아래의 텍스트를 잡을 것입니다.