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

本文介绍如何将数据库查询结果(ResultSet)转换为Java SWT TableViewer组件的显示内容,涉及自定义对象展示、表格样式配置及内容更新方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

我们从数据库中查询得到一个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());        //重新设置内容

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值