【发布时间】:2017-04-23 18:41:15
【问题描述】:
如何在 SWT Table (JFace TableViewer) 中进行离散(逐行)滚动?
我需要一个 Table 来滚动“一次一个完整的行”,在顶部放置一个完整的单元格。
我使用 JFace TableViewer,但我没有找到添加鼠标监听器的方法,所以我做了这样的事情:
TableViewer table = new TableViewer(shell, SWT.BORDER_DASH |SWT.FULL_SELECTION);
//some visual settings ommited here
table.getControl().addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
Table sourceControl = (Table)e.getSource();
System.out.println(e.count);
if(e.count >=0)
sourceControl.setTopIndex(sourceControl.getTopIndex()-1);
else
sourceControl.setTopIndex(sourceControl.getTopIndex()+1);
}
});
但事实证明,首先如果e.count 等于或大于 3,则会丢失一些行。其次,有时setTopIndex() 没有正确放置行。
可以更准确地完成吗?
【问题讨论】:
标签: java swt jface tableviewer