在GWT的水平面板上捕获鼠标事件

在GWT的水平面板上捕获鼠标事件,gwt,Gwt,有没有办法在gwt的水平面板上捕获鼠标事件? 我正在尝试捕捉mousedown或onclick事件,但我无法让它工作。这就是我到目前为止所做的 final HorizontalPanel container = new HorizontalPanel() { @Override public void sinkEvents(int eventBitsToAdd) { // TODO Auto-generated method stub

有没有办法在gwt的水平面板上捕获鼠标事件? 我正在尝试捕捉mousedown或onclick事件,但我无法让它工作。这就是我到目前为止所做的

final HorizontalPanel container = new HorizontalPanel() {
        @Override
        public void sinkEvents(int eventBitsToAdd) {
            // TODO Auto-generated method stub
            super.sinkEvents(Event.ONCLICK);
        }

        @Override
        public void onBrowserEvent(final Event event) {
            // TODO Auto-generated method stub
            super.onBrowserEvent(event);
            if (DOM.eventGetType(event) == Event.ONCLICK) {
                    System.out.println("event type -->> " + event.getType());
            }
            /*if(Event.ONMOUSEDOWN == arg0.getTypeInt())
            System.out.println("event type -->> " + arg0.getType());*/
        }

    };
我不知道为什么这不起作用。 任何帮助都将不胜感激。
感谢

而不是手工下沉和阅读事件,你可以考虑使用:


你可以使用FocusPanel。例如:

HorizontalPanel yourContainer = new HorizontalPanel();

FocusPanel wrapper = new FocusPanel();
wrapper.add(yourContainer );

wrapper.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    // Handle the click
  }
});

@Danny Kirchmeier这很有趣。例如,它是否也适用于FlowPanel?在我尝试addHandler(…)而不是addDomHandler()之前,我的流面板不支持鼠标事件,所以addHandler()和addDomHandler()之间有区别吗?注释请将addHandler()表示为@user592704是的,这将适用于FlowPanel、SimplePanel、Labels或任何其他小部件。这两种方法的区别在于,
addDomHandler
将接收相关事件位并添加逻辑处理程序,其中as
addHandler
仅添加逻辑处理程序。下面是源代码(v2.2,第76行):[+1@Danny kircmeier哦,我为flowpanel尝试了adddomdhandler,它成功了:)谢谢
HorizontalPanel yourContainer = new HorizontalPanel();

FocusPanel wrapper = new FocusPanel();
wrapper.add(yourContainer );

wrapper.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    // Handle the click
  }
});