java - SWT - 表与 TableViewer

标签 java swt jface tableviewer

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

我想学习一些关于何时仅使用 Table 以及何时使用 TableViewer 的最佳指南。

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

最佳答案

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

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

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

因此,在不使用 TableViewer 的情况下使用 Table 之前请三思。

关于java - SWT - 表与 TableViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432112/

相关文章:

java - 如何从链表中删除随机选择的元素?

java - 如何在 Windows 上设置 JUNIT 以使用 Sublime 和命令行?

java - 如何根据时间或特定数量后处理事件

java - 如何将图像与表格单元格(SWT 表)中心对齐 RAP 平台

java - JFace:为特定节点扩展更多级别

java - 将每个列表发送到 Controller (thymeleaf Spring Boot)

java - SWT 中的 PropertyChangeSupport。如何监听通知,例如在表中?

user-interface - 是否可以使用 Jython 的 SWT?

java - org.eclipse.jface.viewers.TreeViewer 不显示任何内容

java - JFace TreeViewer 在选择时展开或折叠