首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NatTable的ShowRowInViewportCommand

使用NatTable的ShowRowInViewportCommand
EN

Stack Overflow用户
提问于 2016-06-29 07:16:13
回答 1查看 144关注 0票数 0

我尝试使用NatTableExamples-1.4.0,并试图将ShowRowInViewportCommand_900_test\viewportSelection\ViewportSelectionHideShowDataLayerExample结合使用。

我将从createExampleControl方法和overloaded onStart()方法获得的overloaded onStart()对象存储如下:

代码语言:javascript
复制
@Override
public void onStart() {
        nattable.doCommand(new ShowRowInViewportCommand(nattable.getLayer(), 35));    //didn't work
        nattable.doCommand(new SelectRowsCommand(nattable.getLayer(), 0, 35, false, false)); //worked, can see the row selected after scrolling down
    }

SelectRowsCommand在这里工作了。我看到36行由于索引位置转换而被选中。

但我没有看到ShowRowInViewportCommand在UI中的作用。我原以为第36行会自动出现。

ShowRowInViewportCommandHandler就位了。在调试过程中,我验证了该控件是否达到了ShowRowInViewportCommandHandler.doCommand方法。

我该怎么做才能看到自动滚动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-30 07:46:25

你的方法有时间问题。您想要使某些东西可见并滚动到尚未呈现的位置。如何对未呈现的内容执行滚动操作?Shell是在 onStart()之后打开的。

要在启动时执行自动滚动,您需要实现在呈现完成后执行的侦听器,例如使用PaintListener

代码语言:javascript
复制
this.nattable.addPaintListener(new PaintListener() {

    @Override
    public void paintControl(PaintEvent e) {
        nattable.doCommand(new SelectRowsCommand(nattable, 0, 35, false, false));
        nattable.removePaintListener(this);
    }
});

顺便说一句,您甚至不需要执行ShowRowInViewportCommand,因为SelectRowsCommand会自动将选定的行移动到视图端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38092811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档