如何在运行时获取和设置Java表的滚动条位置?

时间:2017-04-24 06:06:26

标签: java swt scrollbar jdk1.6 tableviewer

目前在JAVA SWT(org.eclipse.swt.widgets.Table& org.eclipse.jface.viewers.TableViewer库)的帮助下,我有一个从DB填充的表。想法是刷新表数据,同时用户向下滚动以使用滚动条检查表格行,并让滚动条位置恢复到刷新事件之前的相同位置。因此用户在向下滚动数据时从不会觉得某些刷新事件在后台工作。

是否有任何内置的方法或库存在于jdk或上面的eclipse包中以获得&动态设置滚动条的位置?

我找到了一个获得滚动条位置的逻辑

ScrollBar vScroll = Table.getVerticalBar();
        int valuetemp = vScroll.getSelection();

但是在刷新表格内容之后,当滚动条移动到非常有限的条目之后,如果我使用下面的代码来恢复滚动条。理想情况下,它应该按照API工作,但它没有将我的滚动条位置移动到前一个值。

vScroll.setSelection(valuetemp);

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我试图将滚动条保持在最新的表输入。 我找不到

的解决方案
    ScrollBar.class

但以下代码对我有用:

    table.setTopIndex(table.getItemCount()-1);

我希望这会有所帮助:)