[英]How to create a table using tableviewer which has 2 coloumns and 10 rows in jface
如何使用具有2列和10行的TableViewer创建表。我正在尝试使用上述链接http://www.vogella.com/tutorials/EclipseJFaceTable/article.html创建表
我无法开发它。所以请帮助我,因为我是jface新手
我已经创建了表的列,但是无法使用内容提供者和标签将数据添加到表中,因此请帮助我。创建列标题的代码如下
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");
您需要一个包含行数据的类,例如:
class MyRowData
{
String getTime()
{
... your code
}
String getMessage()
{
.... your code
}
}
将列标签提供程序添加到您的列中,以从您的类中获取数据:
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();
}
});
使用标准的数组/列表内容提供程序:
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
创建一个包含您的行的列表:
List<MyRowData> rows = new ArrayList<>();
rows.add(new MyRowData(.....
....
告诉表查看器使用该列表:
tableViewer.setInput(rows);
此setInput
调用必须最后完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.