1

我的问题是:我认为我有一个 Eclipse RCP 表。该表有网格线可见,一切都很好。但我希望表格第一行的所有单元格在运行时 GUI 中合并为一行。我怎样才能实现这个功能?拜托,我不希望在第一行添加文本这样的东西阻碍它。如果有任何 API 级别的功能或任何线索,欢迎这样做。

4

2 回答 2

2

swt 表是本机小部件,不允许您进行任何跨度,无论是在列中还是在行中。甚至 OwnerDraw(自定义单元格渲染)也不支持这一点。我认为可以让您实现这种 hack 的唯一方法是 swt 表编辑器,它允许您在单元格上方放置控件:

http://www.eclipse.org/swt/snippets/#tableeditor

表格编辑器跟踪单个单元格的位置并将控件置于其上方。它在单元格不处于编辑模式时隐藏控件,当单元格处于编辑模式时显示它们。您必须停用此默认行为并确保始终显示控件 - 这应该相当容易。更具挑战性的部分是您必须找出如何将控件放置在 2 个或更多(而不是单个)单元格之上。

我知道支持跨度的唯一 swt 控件是星云网格。Grid 是一个自定义控件(没有本机小部件),因此提供了更多可能性。

http://eclipse.org/nebula/widgets/grid/grid.php http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.swt.nebula/org.eclipse.swt.nebula.snippets /src/org/eclipse/swt/nebula/snippets/grid/GridSnippet2.java?root=Technology_Project&view=co

于 2011-10-30T15:31:34.087 回答
1

您可以使用 GC api 来完成表中的需求。你可以跨越两列。 http://www.java2s.com/Tutorial/Java/0280__SWT/Maketextspanmultiplecolumns.htm

于 2014-10-03T10:02:24.293 回答