这是使用 LabelProvider 定义在列中写入内容的常规方法
@Override
public String getColumnText(final Object element, final int iColumn) {
switch (iColumn) {
case 0:
..
case 1:
..
default:
...
}
}// getColumText()
这意味着我获得了列的 id。 如何获取 LabelProvider 中给定 id 的列的“标题”? 类似的东西
String str = xxx.getColumnName( iColumn );
没找到。
最佳答案
这是使用ColumnLabelProvider
的示例。这使用在仅包含 TableViewer
的 Composite
上设置的 TableColumnLayout
,这允许布局在调整控件大小时调整列大小.
final Composite tableComp = new Composite(parent, SWT.NONE);
tableComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
final TableColumnLayout layout = new TableColumnLayout();
tableComp.setLayout(layout);
TableViewer viewer = new TableViewer(tableComp, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
Table table = viewer.getTable();
col = new TableViewerColumn(_viewer, SWT.LEAD);
col.setLabelProvider(new NameColumnLabelProvider());
col.getColumn().setText(Messages.title_filename);
layout.setColumnData(col.getColumn(), new ColumnWeightData(70));
col = new TableViewerColumn(_viewer, SWT.TRAIL);
col.setLabelProvider(new DurationColumnLabelProvider());
col.getColumn().setText(Messages.title_duration);
layout.setColumnData(col.getColumn(), new ColumnWeightData(30));
private static class NameColumnLabelProvider extends ColumnLabelProvider
{
@Override
public String getText(final Object element)
{
// return name column label
}
}
private static class DurationColumnLabelProvider extends ColumnLabelProvider
{
@Override
public String getText(final Object element)
{
// return duration column label
}
}
关于java - JFace LabelProvider : How can I know the header/name of a column within a LabelProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607480/