GWT-如何将键盘侦听器添加到画布?

GWT-如何将键盘侦听器添加到画布?,gwt,canvas,Gwt,Canvas,我正在尝试将keyboardlistener添加到GWT中的画布中。但它不起作用 我还向这个画布添加了鼠标处理程序,效果很好 以下是鼠标处理程序的代码(此操作有效): 以下是键盘处理程序的代码(这不起作用): 有什么想法吗 编辑: 初始化画布的方式与此类相同:。我只是添加了addkeydownhandler,但没有起作用。我试过Chrome和IE9。我试过这个代码。这对我很有用 RootPanel rootPanel = RootPanel.get(); final Canvas canva

我正在尝试将keyboardlistener添加到GWT中的画布中。但它不起作用

我还向这个画布添加了鼠标处理程序,效果很好

以下是鼠标处理程序的代码(此操作有效):

以下是键盘处理程序的代码(这不起作用):

有什么想法吗


编辑
初始化画布的方式与此类相同:。我只是添加了addkeydownhandler,但没有起作用。我试过Chrome和IE9。我试过这个代码。这对我很有用

RootPanel rootPanel = RootPanel.get();

final Canvas canvas = Canvas.createIfSupported();
canvas.addKeyDownHandler(new KeyDownHandler() {
    public void onKeyDown(KeyDownEvent event) {
        int key = event.getNativeKeyCode();
        System.out.println("key: " + (char) key);
        System.out.println("keypressed :"+ event.getNativeKeyCode());
    }
});

rootPanel.add(canvas, 0 ,0);
输出:(在浏览器上选择画布后按“i”、“u”、“y”


您在哪里初始化您的
画布
?把代码贴在这里。你用的是什么浏览器?我没用。我选择我的画布,我的鼠标处理程序工作,但键盘不工作。@tchike:您使用的是什么GWT SDK?我使用的是GWT 2.4.0。我用FocusPanel替换了RootPanel,在FocusPanel中我添加了画布,效果很好!不过,它也在为我使用RootPanel哈哈。我的荣幸;)也谢谢你:P
    canvas.addKeyDownHandler(new KeyDownHandler() {
        public void onKeyDown(KeyDownEvent event) {
            int key = event.getNativeKeyCode();
            System.out.println("key: " + (char) key);
            System.out.println("keypressed :"+ event.getNativeKeyCode());
        }
    });
RootPanel rootPanel = RootPanel.get();

final Canvas canvas = Canvas.createIfSupported();
canvas.addKeyDownHandler(new KeyDownHandler() {
    public void onKeyDown(KeyDownEvent event) {
        int key = event.getNativeKeyCode();
        System.out.println("key: " + (char) key);
        System.out.println("keypressed :"+ event.getNativeKeyCode());
    }
});

rootPanel.add(canvas, 0 ,0);
key: I
keypressed :73
key: U
keypressed :85
key: Y
keypressed :89