如何使用SWT控件呈现SWT / JFace表的内容?

时间:2010-04-12 15:01:01

标签: eclipse swt jface

我有一个带有SWT表的JFace TableViewer,我想自定义渲染一些单元格的内容。我想使用SWT控件来渲染单元格内容。

我宁愿只有一个Control实例进行渲染,但如果我必须为每一行实例化一个,那就可以了。

接下来,解决方案必须与ContentProvider / LabelProvider方法兼容(我正在使用EMF)。这意味着我无法使用Sniplet 126(http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets)中描述的解决方案。

接下来,我会讨论使用custom drawing。但问题是,我必须将各个绘图操作发送到图形上下文。我试图让Control通过在SWT.PaintItem上调用redraw()或print(GC)来为我呈现内容,但这只会导致无法控制的闪烁。

此时,我最好的猜测是使用SWT.PaintItem进行绘图。这将导致重复的代码,因为我已经有一个可以按照我喜欢的方式呈现内容的Control。我想防止这种冗余。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

好吧,在我的头撞墙几次后,我取得了一些进展。具体来说,我找到了这个formu条目:

http://www.eclipsezone.com/eclipse/forums/t115489.html

它实际上提供了两种解决方案:第一种解决方案实际上使用小部件(由于性能不推荐,但之前我知道)。我会尝试一下,也可以在这里发布它是怎么回事。

第二个解决方案建议使用StyledCellLabelProvider。我之前看过这个,但它对我的目的来说还不够强大。至少这就是我现在的想法。