【问题标题】:SWT - Table vs. TableViewerSWT - 表与 TableViewer
【发布时间】:2012-09-14 21:17:34
【问题描述】:

我正在使用 SWT 创建一个新项目。我将在项目中有 3 或 4 个不同的表。我对 SWT 相当陌生,我发现自己在问我应该只使用 Table 还是应该使用 TableViewer

我想了解一些关于何时仅使用 Table 以及何时使用 TableViewer 是最佳路径的良好指南。

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

只是真的想要一些清晰,以便在我创建项目时以正确的方式进行。

编辑

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

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

这里是一个sn-p的方法:

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); 
        }
     });

【问题讨论】:

  • 刚刚看到您编辑了您的问题。现在有两个不同的问题。请打开一个新的进行编辑。如果您对原始问题的其中一个答案是足够的,请接受它,否则请发表评论。

标签: java swt jface tableviewer


【解决方案1】:

一般来说,我建议TableViewer。查看器将处理您必须使用Table 自己做的大多数事情。删除、添加和移动项目以及自定义项目的显示方式更容易。使用查看器处理点击事件真的很容易。

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

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

所以在使用Table 而不使用TableViewer 之前请三思。

【讨论】:

    【解决方案2】:

    http://sunnyshekhar.blogspot.com/2013/04/creating-swt-table-below-i-will-try-to.html

    这里我试图解释如何在 swt 中创建一个表。我想在 swt 中创建表说起来容易做起来难。我们必须面对很多复杂的情况。实现有点难以理解。但是我们在 swt 中有很多自定义功能。 还有一点需要注意的是,Swt 是 Os 之上的一层,所以在 Swt 中,我们使用 Os 提供给我们的任何东西。 有时很难创建一个复选框并将其移动到单元格的中心。 我在创建表格时遇到了很多类似的问题,但你总是有技巧或解决方法。 在 Swt 中,我们有明确定义的类,如果你实现这些类,它们会提供各种方法来玩弄表格。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多