我想在buttonelement添加处理程序,我已经实现了如下.请帮我解决这段代码中的错误.我不想直接在按钮小部件上添加处理程序.
Button button = new Button("Click"); Element buttonElement = button.getElement(); Event.setEventListener(buttonElement,new EventListener() { @Override public void onBrowserEvent(Event event) { String string = event.getType(); if(string.equalsIgnoreCase("click")) { System.out.println("CLICK"); } } }); Event.sinkEvents(buttonElement,Event.ONCLICK);
解决方法
你的代码是正确的,你可能会在接收器事件后添加小部件.你必须在sink事件之前添加小部件.只是例子:
Button button=new Button("Click"); Element buttonElement = button.getElement(); RootPanel.get().add(button); Event.sinkEvents(buttonElement,Event.ONCLICK); Event.setEventListener(buttonElement,new EventListener() { @Override public void onBrowserEvent(Event event) { System.out.println("ok"); if(Event.ONCLICK == event.getTypeInt()) { Window.alert("ok"); System.out.println("CLICK"); } } });