0

GWT 应用程序中表格单元格中的控件单击的事件类型是什么?当用户执行此操作时,我想基本上改变背景的颜色。

我的这部分代码基本上看起来像:

public void onBrowserEvent(Event event) {
        Element td = getEventTargetCell(event);

        if (td == null) return;
        Element tr = DOM.getParent(td);

        System.out.println("Event " + Event.getCurrentEvent());
        switch (DOM.eventGetType(event)) {
        case Event.ONMOUSEDOWN: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            onRowClick(tr);
            break;
        }
        case Event.ONMOUSEUP: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffffff");
            break;
        }
        case Event.ONMOUSEOVER: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            onRowRollover(tr);
            break;
        }
        case Event.ONMOUSEOUT: {
            //DOM.setStyleAttribute(td, "backgroundColor","#ffffff");
            break;
        }
        /*case Event.ONCLICK: {
            DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            break;
        }*/
        case Event.ONDBLCLICK: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffffff");
            break;
        }
        case Event.KEYEVENTS: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            break;
        }
        case Event.ONFOCUS: {
            //DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            break;
        }
        /*case Event. {
            DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
            break;
        }*/
        }

    }

我需要做什么才能捕捉到这个事件?

4

2 回答 2

2

传入 onBrowserEvent的http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client/Event.html对象有方法。等方法boolean getCtrlKey()

case Event.ONCLICK: {
    if (event.getCtrlKey()) {
        DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
    }
    break;
}

这适用于 Windows,不确定 Mac 和 Linux。在 OS X 上,您可以改为检查 getMetaKey(),因为 Command 通常用于在 Windows 上使用 Control 的地方。

于 2010-09-12T16:19:16.807 回答
0

如何将单元格的内容包装在 a 中FocusPanel并添加适当的处理程序(很可能MouseDownHandler)?(提示:创建一次处理程序并将其添加到所有相关单元格)
您还可以添加关键处理程序等,FocusPanel这样您就不需要涉足本机浏览器事件(这可能会导致一些麻烦,特定于浏览器的代码等),让 GWT 为您做这件事 :)

于 2010-09-12T15:50:14.997 回答