我在eclipse中用TableViewer
創建了應用程序。 TableViewer
從org.eclipse.jface.viewers.TableViewer
進口如何爲TableViewer jface進行分頁?
表中有很多數據。
當我滾動我想看看錶(尋呼)的下一個結果表
你知道,如果有一些通用的呢?
我在eclipse中用TableViewer
創建了應用程序。 TableViewer
從org.eclipse.jface.viewers.TableViewer
進口如何爲TableViewer jface進行分頁?
表中有很多數據。
當我滾動我想看看錶(尋呼)的下一個結果表
你知道,如果有一些通用的呢?
下面是一些代碼,會做什麼(我覺得)你想:相應
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)));
}
}
將用於偵聽Table
MouseWheel
事件和更新內容。
同樣適用於TableViewer
!而非Table
S,只需更換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--));
}
});
我希望滾動功能可以在滾動時使用,而不是使用按鈕 – user1365697
@ user1365697那不是分頁功能。所以你只需要表格滾動?你在哪裏遇到問題? – Baz
首先我可以看到只有20個結果,當我在桌面上滾動時,我想根據滾動查看下20個結果 – user1365697
(SWT也許)? –
SWT org.eclipse.jface.viewers.TableViewer – user1365697
我建議你嘗試使用Eclipse Nebula分頁(http://www.eclipse.org/nebula/widgets/pagination/pagination.php)它用SWT Table管理分頁。 – Angelo