Java 如何在zk中使用onScroll和onScroll事件

Java 如何在zk中使用onScroll和onScroll事件,java,events,zk,Java,Events,Zk,在我的系统中,我想向组件添加事件侦听器,如下所示: itemCustGrid.addEventListener(Events.ON_SCROLLING, new EventListener<ScrollEvent>() {...}); <listbox xmlns:w="client" w:onScroll='console.log("scroll")' /> itemCustGrid.addEventListener(Events.ON_滚动时,新建EventLis

在我的系统中,我想向组件添加事件侦听器,如下所示:

itemCustGrid.addEventListener(Events.ON_SCROLLING, new EventListener<ScrollEvent>() {...});
<listbox xmlns:w="client" w:onScroll='console.log("scroll")' />
itemCustGrid.addEventListener(Events.ON_滚动时,新建EventListener(){…});
然后我检查zk,网格组件不能支持onScroll事件或onScroll事件

Class HtmlBasedComponent:
 * <p>Events:<br/>
 *  onClick, onDoubleClick, onRightClick, onDrop,
 *  onMouseOver, onMouseOut, onOK, onCacnel, onCtrlKey and onSwipe.<br/>
类HtmlBasedComponent:
*事件:
*onClick,onDoubleClick,onright click,onDrop, *onMouseOver、onMouseOut、onOK、onCacnel、onCtrlKey和onsweep。
因此,我在自己的组件中注册事件,如下所示:

addClientEvent(BaseGrid.class、Events.ON\u滚动、CE\u重要); addClientEvent(BaseGrid.class、Events.ON\u滚动,CE\u重要)


但仍然无法工作。它应该怎么做?

可以在客户端用JavaScript收听滚动事件,如下所示:

itemCustGrid.addEventListener(Events.ON_SCROLLING, new EventListener<ScrollEvent>() {...});
<listbox xmlns:w="client" w:onScroll='console.log("scroll")' />

这将在服务器端输出
{“data”:“I scrolled!”}
。但是请注意:滚动事件经常被抛出。您可能希望将事件发送延迟一点以限制流量。

首先,谢谢malte,还有一个问题,这意味着我不需要在系统中注册onScroll事件或onScroll事件?不,不需要使用这种方法。在客户端,onScroll事件已经是现成的。如果对自定义事件使用
zAu.send()。这就是你所要做的:将onScroll作为自定义事件重新显示,并为该事件添加一个侦听器。是的,我的意思是如果我可以直接在java代码中使用Component.setWidgetListener()的方式?我该怎么办?我考过了。没关系!但在我的系统里。同样的方法不能起作用!真奇怪。我把你的小提琴复制到了我的项目中,它成功了。