我正在使用 SWT 创建一个新项目。我将在项目中有 3 或 4 个不同的表。我是 SWT 的新手,我发现自己在问我应该只使用 Table
还是应该使用 TableViewer
。
我想学习一些关于何时仅使用 Table
以及何时使用 TableViewer
的最佳指南。
- 使用
TableViewer
而不是Table
有什么好处? - 所有的表都应该有一个
TableViewer
吗? - 如果我正在处理表中的数据,
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
,查看器将处理您必须自己完成的大部分事情。删除、添加和移动项目以及自定义项目的显示方式变得更加容易。使用查看器处理点击事件真的很容易。
在少数情况下,我会使用没有 TableViewer
的 Table
。例如:
当表格仅用于显示一组永不更改的静态项目时。在这种情况下,TableViewer
可能有点过头了。
但是,您应该记住,您的项目可能会增长,您可能需要那些“简单”的表格来做更多的事情,而不仅仅是显示静态项目。在这种情况下,您将不得不用查看器替换表格,这将需要大量工作。
因此,在不使用 TableViewer
的情况下使用 Table
之前请三思。
关于java - SWT - 表与 TableViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432112/