我正在使用SWT创建一个新项目。在这个项目中,我将有3到4个不同的表。我对SWT相当陌生,我发现自己在问自己是在使用Table,还是应该使用TableViewer。
我想学习一些关于什么时候只使用Table和什么时候TableViewer是最好的路线的好指南。
TableViewer而不是Table有什么好处?TableViewerTable是最好的方法吗?只是真的想要一些清晰,所以当我创建这个项目时,我用正确的方式来做。
编辑
我已经为我的第一个表创建了一个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);
}
});发布于 2012-09-15 08:39:55
总的来说,我建议使用TableViewer。查看器将处理大多数您需要自己使用Table做的事情。删除、添加和移动项以及自定义项目的显示方式更容易。使用查看器处理单击事件非常容易。
很少有这样的情况,在这种情况下,我会使用没有Table的TableViewer。例如:当表仅用于显示一组不变的静态项时。在这种情况下,TableViewer可能有点过头了。
但是,您应该记住,您的项目可能会增长,您可能需要这些“简单”表来完成更多的任务,而不仅仅是显示静态项。在这种情况下,您必须用查看器替换表,这将是一项很大的工作。
因此,在使用没有Table的TableViewer之前,要三思。
发布于 2013-04-19 13:38:50
http://sunnyshekhar.blogspot.com/2013/04/creating-swt-table-below-i-will-try-to.html
在这里,我试图解释如何在swt中创建一个表。我认为在swt中创建一个表说起来容易做起来难。我们必须面对许多复杂的问题。实现有点难理解。但是我们在swt中有很多定制功能。还有一点需要注意的是,Swt是Os之上的一个层,所以在Swt中,我们使用Os提供的任何东西。有时很难创建复选框并将其移动到单元格的中心。在创建表时,我遇到了许多类似的问题,但是您总是可以找到解决它们的方法。在Swt中,我们有定义良好的类,如果您实现了这些类,就会给出各种方法来处理表。
发布于 2012-09-14 21:50:29
我建议您始终使用TableViewer,除非您想做大量的定制工作。
http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html
好的文章开始
usage
https://stackoverflow.com/questions/12432112
复制相似问题