当前位置: 首页 > 知识库问答 >
问题:

SWT表格与表格查看器

宿建本
2023-03-14

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

我想学习一些好的指导方针,告诉我什么时候只使用< code>Table以及什么时候< code>TableViewer是最佳途径。

    < li >使用< code>TableViewer而不是< code>Table有什么好处? < li >是否所有表格都应该有< code>TableViewer? < li >如果我正在处理表格中的数据,那么< code >表格是最好的方法吗?

只是真的需要一些清晰度,所以当我创建项目,我做它的正确方式。

编辑

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

有可能有一个模板< code>TableViewer类吗?< br >我是否可以更改方法,使其更适用于不同的表?

下面是该方法的一个片段:

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

共有3个答案

阮雅达
2023-03-14

我建议你总是使用< code>TableViewer,除非你想做大量的定制。

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

从这篇好文章开始

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

皇甫伟彦
2023-03-14

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

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

汝志
2023-03-14

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

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

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

因此,在使用没有TableViewer的Table之前要三思。

 类似资料:
  • 当我尝试创建复合表列时出错?

  • 我正在使用swt表,并实现了一个selectionListener: 我点击第一项,听者起作用了! 现在,按下按钮后,我想自动选择表中的下一项。我已经尝试过: 和 选择更改(蓝色),但selectionListener没有反应?! 也许你能帮我解决这个问题。 谢谢你的帮助! 亲切的问候

  • 在一个工具中,我正在做,我有一个表格,我像这样添加: 效果很好,但现在,我想添加一个JFace表查看器,但是上面的文档似乎只关注表布局,而不是表。我以为,桌面视图会被添加到表中吗?

  • 问题内容: 我开发了Eclipse RCP应用程序,并且遇到了问题。我们数据库中有一些布尔格式的数据,用户希望使用来查看该字段。 我试图使用来实现它作为 表编辑器 ,但它的工作速度太慢:( 我尝试使用2张图片-选中和未选中的复选框,都可以,但是我无法将它们居中对齐,它们会自动向左对齐。 我什至找到了如何捕获和事件以及如何通过更改字段手动处理它们,但是我遇到了一个问题- 我现在无法测量或绘制哪个列,

  • 我有一个Table,我使用我自己的自定义LabelProvider来显示背景和前景颜色。 由此我得出,我无法更改选择的背景色。因此,我想能够改变前景色的文字选择后。但是,我不知道如何检测是否选择了特定的行,以便提供不同的前景色。 任何帮助将不胜感激,我不太精通swt。 编辑:对于任何搜索这是我所做的

  • 问题内容: Vaadin 7中的和组件有什么区别? 我应该使用哪个,什么时候使用? 问题答案: Grid是一个功能更强大的新组件,它应该是Table的后继组件(请参阅Table已死,Grid长寿)。因此,应该没有任何必要偏爱表格而不是网格。 这是Vaadin从表格迁移到网格的一系列文章的第一篇:https : //vaadin.com/blog/-/blogs/mission-rip- table