首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用有2列10行jface的tableviewer创建表

如何使用有2列10行jface的tableviewer创建表
EN

Stack Overflow用户
提问于 2014-09-01 16:15:42
回答 1查看 1.4K关注 0票数 0

如何使用TableViewer创建包含2列和10行的表。我正在尝试使用上面的链接http://www.vogella.com/tutorials/EclipseJFaceTable/article.html创建表

我不能开发它.So请帮助我做,因为我是新手

我已经创建了表的列,但我无法使用内容提供者和标签将数据添加到其中,因此请帮助我使用do.The代码来创建列标题,如下所示

代码语言:javascript
运行
复制
TableColumnLayout layout = new TableColumnLayout();
composite.setLayout(layout);

//Instantiate TableViewer
TableViewer tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);

TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn empty = tableViewerColumn.getColumn();

layout.setColumnData(empty, new ColumnPixelData(100, true, true));
empty.setText("");

TableViewerColumn tableViewerColumn_Time = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn time = tableViewerColumn_Time.getColumn();
//Specify width using weights
layout.setColumnData(time, new ColumnWeightData(2, ColumnWeightData.MINIMUM_WIDTH, true));
time.setText("Time");

TableViewerColumn tableViewerColumn_2 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn message = tableViewerColumn_2.getColumn();
//Specify width using weights
layout.setColumnData(message, new ColumnWeightData(4, ColumnWeightData.MINIMUM_WIDTH, true));
message.setText("Message");
EN

Stack Overflow用户

发布于 2014-09-01 19:44:48

您需要一个包含行数据的类,如下所示:

代码语言:javascript
运行
复制
class MyRowData
{
  String getTime()
  {
     ... your code
  }

  String getMessage()
  {
     .... your code
  }
}

将列标签提供程序添加到从类中获取数据的列中:

代码语言:javascript
运行
复制
tableViewerColumn_Time.setLabelProvider(new ColumnLabelProvider() { 
  @Override
  public String getText(Object element) {
    return ((MyRowData)element).getTime();
  }
});

tableViewerColumn_2.setLabelProvider(new ColumnLabelProvider() { 
  @Override
  public String getText(Object element) {
    return ((MyRowData)element).getMessage();
  }
});

使用标准数组/列表内容提供程序:

代码语言:javascript
运行
复制
tableViewer.setContentProvider(ArrayContentProvider.getInstance());

创建包含行的列表:

代码语言:javascript
运行
复制
List<MyRowData> rows = new ArrayList<>();

rows.add(new MyRowData(..... 
....

告诉表查看器使用列表:

代码语言:javascript
运行
复制
tableViewer.setInput(rows);

setInput调用必须在最后完成。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25601540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档