Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java gwt clickhandler_Java_Gwt_Click - Fatal编程技术网

java gwt clickhandler

java gwt clickhandler,java,gwt,click,Java,Gwt,Click,我有一个菜单按钮,它由图像和图像下的文本组成。整个建筑是这样的: ImageResource icon = ...; final Element span = DOM.createSpan(); Image image = new Image(icon); span.insertFirst(image.getElement()); Element div = DOM.createDiv(); div.setInnerHTML(text);

我有一个菜单按钮,它由图像和图像下的文本组成。整个建筑是这样的:

    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);
       ...
       private void bindEvents() {
        display.getButton().addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                Window.alert("test");
             }
    });
单击事件在演示者中设置如下:

    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);
       ...
       private void bindEvents() {
        display.getButton().addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                Window.alert("test");
             }
    });
单击事件只是部分工作,当我单击图像下的文本时,单击事件工作正常,但当我单击图像时,不执行单击

另一种方法:

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());

这将捕获图像及其下文本上的单击事件。

此处对所有内容进行了详细说明: