【发布时间】:2017-06-21 23:20:46
【问题描述】:
我正在尝试弄清楚 JFace 的结构元素是如何工作的。我做了如下简单的界面:
protected Control createContents(Composite parent)
{
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout(SWT.HORIZONTAL));
TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setLinesVisible(true);
table.setHeaderVisible(true);
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
tableViewer.setInput(new String[][]{{"1", "2", "3"},{"1", "2", "3"},{"1", "2", "3"}});
TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnTest = tableViewerColumn.getColumn();
tblclmnTest.setWidth(58);
tblclmnTest.setText("Test1");
tableViewerColumn.setLabelProvider(new ColumnLabelProvider()
{
@Override
public String getText(Object element)
{
return super.getText(((String[])element)[0]);
}
});
TableViewerColumn tableViewerColumn2 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnTest2 = tableViewerColumn2.getColumn();
tblclmnTest2.setWidth(58);
tblclmnTest2.setText("Test2");
tableViewerColumn2.setLabelProvider(new ColumnLabelProvider()
{
@Override
public String getText(Object element)
{
return super.getText(((String[])element)[1]);
}
});
TableViewerColumn tableViewerColumn3 = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnTest3 = tableViewerColumn3.getColumn();
tblclmnTest3.setWidth(58);
tblclmnTest3.setText("Test3");
tableViewerColumn3.setLabelProvider(new ColumnLabelProvider()
{
@Override
public String getText(Object element)
{
return super.getText(((String[])element)[2]);
}
});
return container;
}
我做了类似于tutorial 的所有操作,但问题是:getText() 方法没有被调用。我通过在其中插入System.out.prinln 来解决这个问题。结果看起来不像它应该的样子:
我的错误是什么?
【问题讨论】:
标签: swt jface tableviewer