java - 双击事件不起作用 - DataGrid - GWT

标签 java eclipse gwt datagrid event-handling

我在为我的数据网格实现双击处理程序时遇到问题。我在堆栈溢出上找到了一个解决方案,我相信它应该可以解决我的问题,但是我无法弄清楚:

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) 方法必须重写或实现父类(super class)型方法

我的代码:

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

最佳答案

这不是一个很好的代码(更好的选择是扩展 DataGrid 类),但如果您不想进行太多更改,只需替换 <T><String[]> .

关于java - 双击事件不起作用 - DataGrid - GWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313414/

相关文章:

java - 对于类型 TreeMap<MyTime,Integer> ,方法 heavenEntry(MyTime) 未定义

java - 需要简单的方法来修改 JTable 使用的 toString()

java - 在项目中导入jar

c++ - 不能在eclipse中使用单独的函数文件

java - 如何修复方法 setLatestEventInfo(Context, String, String, PendingIntent) 未定义类型通知

google-app-engine - GWT/股票观察者 : can't connect the server

eclipse - [错误] [mv_main] - 内存不足;要增加内存量,请在启动时使用 -Xmx 标志 (java -Xmx128M ...)

java - Jasypt 1.9 : Encrypting passwords with exclamation

java - 使用 Applet 的 SessionID 进行日志验证。安全与否?

Java try..catch 和finally