【问题标题】:Double click event not working- DataGrid - GWT双击事件不起作用-DataGrid-GWT
【发布时间】:2014-04-14 08:06:59
【问题描述】:

我在为我的 Datagrid 实现双击处理程序时遇到问题。我在 Stack Overflow 上找到了一个解决方案,我相信它应该可以解决我的问题,但是,我想不通:

1. How exactly do I implement it?
2. What is <T>?

我遇到了各种我不明白的错误。几乎可以肯定,问题在于我添加 CellPreviewHandler(第 6 行)的方式

错误(第 6 行和第 8 行)

-Type new CellPreviewEvent.Handler(){}必须实现继承的抽象方法CellPreviewEvent.Handler.onCellPreview(CellPreviewEvent)

-new AsynCallBack(String[][]>(){} 类型的方法 onCellPreview(CellPreviewEvent) 必须重写或实现超类型方法

我的代码:

Public Class DataGrid extends Widget{
    Timer singleClickTimer;
    int clickCount = 0;
    int clickDelay = 300;
myDataTable = new DataGrid<String[]>(result.length, resources, KEY_PROVIDER);
myDataTable.addCellPreviewHandler(new Handler<T>(){
@Override
public void onCellPreview(final CellPreviewEvent<T> event) {
    if (Event.getTypeInt(event.getNativeEvent().getType()) == Event.ONMOUSEOVER) {
        handleOnMouseOver(event);
    } else if (Event.getTypeInt(event.getNativeEvent().getType()) == Event.ONCLICK) {
        clickCount++;
        if (clickCount == 1) {
            singleClickTimer = new Timer() {

                @Override
                public void run() {
                    clickCount = 0;
                    handleOnClick(event);
                }
            };
            singleClickTimer.schedule(clickDelay);
        } else if (clickCount == 2) {
            singleClickTimer.cancel();
            clickCount = 0;
            handleOnDblClick(event);
        }
    }
}
});
private void handleOnMouseOver(CellPreviewEvent<T> event) {
    Element cell = event.getNativeEvent().getEventTarget().cast();
    GWT.log("mouse over event");
}

private void handleOnClick(CellPreviewEvent<T> event) {
    Element cell = event.getNativeEvent().getEventTarget().cast();
    GWT.log("click event");
}

private void handleOnDblClick(CellPreviewEvent<T> event) {
    Element cell = event.getNativeEvent().getEventTarget().cast();            
    GWT.log("double click event");
}

原始解决方案链接: adding Double click event in CellTable cell - GWT

【问题讨论】:

    标签: java eclipse gwt datagrid event-handling


    【解决方案1】:

    这不是一个很好的代码(更好的选择是扩展 DataGrid 类),但如果您不想改变太多,只需将 &lt;T&gt; 替换为 &lt;String[]&gt;

    【讨论】:

    • 是的,DataGrid 类是由另一个目前无法咨询的开发人员创建的。显然,由于我的数据网格已经实现并且目前可以工作(减去双击处理程序),我无法对其进行太多更改......那么这会给我留下双击处理程序的可能解决方案吗?
    • 好的,我知道了,非常感谢!仍然不确定这个 对未来的知识意味着什么:/
    猜你喜欢
    • 2018-10-21
    • 2013-08-31
    • 2019-02-09
    • 2014-10-14
    • 1970-01-01
    • 2013-04-28
    • 2017-01-15
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多