7

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

我想了解一些关于何时只使用 theTable以及何时使用 aTableViewer是最佳路线的良好指南。

  1. 使用 aTableViewer而不是 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); 
        }
     });
4

3 回答 3

4

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

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

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

Table所以在使用没有 a之前请三思而后行TableViewer

于 2012-09-15T08:39:55.263 回答
1

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

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

于 2013-04-19T13:38:50.550 回答
0

我建议你TableViewer总是使用,除非你想做很多定制。

http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html

好文章开始

http://www.vogella.com/articles/EclipseJFaceTable/article.html#tutorial_jfacetableviewer_usage

于 2012-09-14T21:50:29.870 回答