eclipse TableViewer的使用 ResultSet如何显示到TableViewer

来源:互联网 发布:淘宝怎么注册 编辑:程序博客网 时间:2024/06/15 07:38
 

我们从数据库中查询得到一个ResultSet的对象,如何将它显示到TableViewer中呢?

我们只能重新再定义一个新类,通过这个类生成对象,再把对象放到List中,再通过tableviewer.setInput(List对象)来实现。

 

比如我们现在有个getList()的方法,返回List对象。List里面的元素也是一个一个的对象,比如是员工对象ShowWorkers,包括员工的idname;

Tableviewer显示内容

final TableViewer tableViewer = new TableViewer(shell, SWT.V_SCROLL

                            | SWT.FULL_SELECTION | SWT.BORDER);

//设置标签类

class TableLabelProvider extends LabelProvider implements ITableLabelProvider {

              public String getColumnText(Object element, int columnIndex) {

                     ShowWorkers o = (ShowWorkers) element;

                     if (columnIndex == 0)

                            return o.getId().toString();

                     if (columnIndex == 1)

                            return o.getName().toString();                   

                     return "";

              }

 

              public Image getColumnImage(Object element, int columnIndex) {

                     return null;

              }

}

 

 

//设置内容类,这个类基本上不用改适用于所有情况

class ContentProvider implements IStructuredContentProvider {

              public Object[] getElements(Object inputElement) {

                     if (inputElement instanceof List) {

                            return ((List) inputElement).toArray();

                     }

                     return new Object[0];

              }

 

              public void dispose() {

              }

 

              public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

              }

}

tableViewer.setLabelProvider(new TableLabelProvider());

tableViewer.setContentProvider(new ContentProvider());

table = tableViewer.getTable();

table.setHeaderVisible(true);                      //表头可见

table.setLinesVisible(true);                                        //格线可见

table.setBounds(275, 84, 346, 200);

tableViewer.setInput(getList());                    //设置内容

 

TableViewer改变内容

table.clearAll();                     //清空内容

tableViewer.setInput(getList());        //重新设置内容