SWT - 表与TableViewer

jkt*_*ter 7 java swt jface tableviewer

我正在使用SWT创建一个新项目.我将在项目中有3或4个不同的表.我对SWT很新,我发现自己要问我应该使用Table或者它应该是一个TableViewer.

我想学习一些关于何时使用Table和何时TableViewer是最佳路线的良好指导.

  1. 使用a TableViewer而不是a 的好处是Table什么?
  2. 所有的表都应该有TableViewer吗?
  3. 如果我正在处理表中的数据,那么这Table是最好的方法吗?

只是真的想要一些清晰度,所以当我创建项目时,我会以正确的方式做到这一点.

编辑

我创建了一个Tablemodel我用于第一个表的类.但该createColumns方法专用于该特定表.

是否可以拥有模板TableViewer类?
我可以将方法更改为更适用于不同的表吗?

以下是该方法的片段:

private void createColumns() {

  String[] titles = { "ItemId", "RevId", "PRL", "Dataset Name", "EC Markup" };
  int[] bounds = { 150, 150, 100, 150, 100 };

  TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
  col.setLabelProvider(new ColumnLabelProvider() {
     public String getText(Object element) {
        if(element instanceof AplotDataModel.AplotDatasetData)
           return ((AplotDataModel.AplotDatasetData)element).getDataset().toString();
        return super.getText(element); 
        }
     }); 

  col = createTableViewerColumn(titles[1], bounds[1], 1);
  col.setLabelProvider(new ColumnLabelProvider() {
     public String getText(Object element) {
        if(element instanceof AplotDataModel.AplotDatasetData)
           return ((AplotDataModel.AplotDatasetData)element).getRev().toString();
        return super.getText(element); 
        }
     });
Run Code Online (Sandbox Code Playgroud)

Baz*_*Baz 4

一般来说,我会建议一个TableViewer. 观看者将处理您必须自己做的大部分事情Table。删除、添加和移动项目以及自定义项目的显示方式都更加容易。对于查看器来说,处理点击事件非常容易。

在极少数情况下,我会使用Table不带TableViewer. 例如:当表格仅用于显示一组永不更改的静态项目时。在这种情况下, aTableViewer可能有点过头了。

但是,您应该记住,您的项目可能会增长,并且您可能需要这些“简单”表格来执行更多操作,而不仅仅是显示静态项目。在这种情况下,您必须用查看器替换表格,这将是一项繁重的工作。

Table因此,在使用不带 的 a之前请三思TableViewer