java - JFace LabelProvider : How can I know the header/name of a column within a LabelProvider?

标签 java eclipse-rcp jface eclipse-plugin

这是使用 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的示例。这使用在仅包含 TableViewerComposite 上设置的 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/

相关文章:

java - 如何在 SWT 中禁用组合框中的水平滚动条

java - 我应该为 HashMap.get() 使用什么 Try/Catch block ?

java - 在 Jetty 9 中更改线程池大小

java - Eclipse RCP 项目无法引用常规 Java 项目

java - Eclipse:以编程方式创建首选项页面

java - 启用 OSGi/RCP 插件从另一个非依赖插件加载类

eclipse-plugin - TreeViewer 到 GridTreeViewer : bridge between existing ITreeContentProviders and "lazy" ObservableListTreeContentProvider

java - 使用 openEntityManagerInView 仍然得到 "failed to lazily initialize a collection of role"

java - 在 RESTful API 中创建和验证实体模型及其 DTO 的正确方法是什么?

java - 将自定义 menuManager 移动到现有 RCP 应用程序菜单的末尾