Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以使为on-topic。
6年前关闭。
Improve this question
我在Eclipse中使用
该表有很多数据。
当我在表格上滚动时,我想查看表格的下一个结果(分页)
您知道是否有通用的东西吗?
它将监听
对于
想改善这个问题吗?更新问题,以使为on-topic。
6年前关闭。
Improve this question
我在Eclipse中使用
TableViewer
创建了应用程序。TableViewer
是从org.eclipse.jface.viewers.TableViewer
导入的该表有很多数据。
当我在表格上滚动时,我想查看表格的下一个结果(分页)
您知道是否有通用的东西吗?
最佳答案
这是一些代码,可以完成您想要的(我认为):
private static int page = 0;
private static int pageSize = 10;
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Table table = new Table(shell, SWT.NONE);
table.addListener(SWT.MouseWheel, new Listener()
{
@Override
public void handleEvent(Event e)
{
if(e.count < 0)
addItems(table, page++);
else if(e.count > 0)
addItems(table, page--);
}
});
addItems(table, page);
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
private static void addItems(Table table, int topIndex)
{
table.removeAll();
for(int i = 0; i < pageSize; i++)
{
TableItem item = new TableItem(table, SWT.NONE);
item.setText("Item: " + (i + (topIndex * pageSize)));
}
}
它将监听
MouseWheel
上的Table
事件,并相应地更新内容。对于
TableViewer
而不是Table
同样适用,只需将Listener
替换为:table.addListener(SWT.MouseWheel, new Listener()
{
@Override
public void handleEvent(Event e)
{
if(e.count < 0)
viewer.setInput(ModelProvider.INSTANCE.getItems(page++));
else if(e.count > 0)
viewer.setInput(ModelProvider.INSTANCE.getItems(page--));
}
});
10-08 01:45