用swt在columnheader中组合

迈克尔·斯托克

我想要一个具有组合的表作为其列标题之一。我已经从这个问题中发现Table是不可能的:列标题SWT中的控件(组合,广播,文本)

有办法解决吗?我尝试了TableViewer,但也没有找到使用它的方法。有什么办法可以实现?

greg-449

您可以Composite使用常规控件在表格上方的区域中创建自己的列标题

然后,您需要调整这些控件的大小以匹配表列的大小。一种方法是使用表布局类扩展jfaceTableColumnLayout并覆盖setColumnWidths每次列大小更改时调用方法,因此您可以调整标题控件的宽度。

注意:TableColumnLayout需要Composite仅在包含,Table而不是直接在上Table

所以这样的布局:

/**
 * Table column layout extended to manage a separate table header.
 */
public class TableColumnLayoutWithSeparateHeader extends TableColumnLayout
{
  /** Header composite */
  private final Composite _headerComposite;
  /** Right margin adjust */
  private final int _rightMargin;


  /**
   * Constructor.
   *
   * @param headerComposite Header composite
   * @param rightMargin Right margin value
   */
  public TableColumnLayoutWithSeparateHeader(final Composite headerComposite, final int rightMargin)
  {
    super();

    _headerComposite = headerComposite;
    _rightMargin = rightMargin;
  }


  /**
   * {@inheritDoc}
   * @see org.eclipse.jface.layout.TableColumnLayout#setColumnWidths(org.eclipse.swt.widgets.Scrollable, int[])
   */
  @Override
  protected void setColumnWidths(final Scrollable tableTree, final int [] widths)
  {
    super.setColumnWidths(tableTree, widths);

    // Update the header composite

    final Control [] children = _headerComposite.getChildren();

    final int size = Math.min(widths.length, children.length);

    for (int index = 0; index < size; ++index) {
       final GridData data = (GridData)children[index].getLayoutData();

       int width = widths[index];
       if (index == (size - 1))
         width -= _rightMargin;

       data.widthHint = width; 
     }

    _headerComposite.layout();
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SWT / JFace中实现多选组合的最佳方法是什么?

来自分类Dev

如何为SWT组合中的单个项目设置不同的颜色

来自分类Dev

Eclipse SWT 中循环组合的 Java 侦听器

来自分类Dev

如何制作可编辑的SWT组合,从而允许用户仅键入组合中的项目

来自分类Dev

用枚举中的值填充组合框

来自分类Dev

用组合框中的数据填充itemsource

来自分类Dev

用元素组合替换列表中的变量

来自分类Dev

SWT组合禁用项目

来自分类Dev

设置SWT组合的初始消息

来自分类Dev

SWT组合禁用项目

来自分类Dev

设置SWT组合的初始消息

来自分类Dev

DataGridView将文本放在RowHeader的ColumnHeader中

来自分类Dev

如何在Matlab中编辑columnheader值

来自分类Dev

在树中父子节点在 Java 中的 SWT 中选中和取消选中组合

来自分类Dev

如何在Eclipse SWT组合中为项目添加工具提示条目

来自分类Dev

Eclipse SWT CellEditor组合-自动完成

来自分类Dev

SWT错误地检测到按键组合

来自分类Dev

用VB中的数据库表填充组合框

来自分类Dev

用Python将列表中的所有组合相乘

来自分类Dev

用 datagridview 中的一列填充组合框

来自分类Dev

如何将html标签放入标签columnheader中?

来自分类Dev

R中的组合的组合

来自分类Dev

SWT中的ColumnViewerTooltipSupport

来自分类Dev

用R写组合

来自分类Dev

用“ _”分隔字符串列,删除前面的文本,用“ _”组合str在大熊猫中

来自分类Dev

如何在swt中使子组合填充父

来自分类Dev

JFace,SWT输入更改时更改组合视图宽度

来自分类Dev

SWT.READ_ONLY时如何重置组合

来自分类Dev

如何使用SWT组合按钮和文本字段