1

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

我希望只有一个 Control 实例进行渲染,但如果我必须为每一行实例化一个,那将是可以接受的。

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

接下来,我想使用自定义绘图。但这里的问题是,我必须将单独的绘图操作发送到图形上下文。我试图让控件通过在 SWT.PaintItem 上调用 redraw() 或 print(GC) 来为我呈现内容,但这只会导致无法控制的闪烁。

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

任何帮助表示赞赏!

4

1 回答 1

1

好吧,在我的头撞到墙上几次之后,我取得了一些进展。具体来说,我发现了这个表单条目:

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

它实际上提供了两个解决方案:第一个解决方案实际上使用了小部件(由于性能原因不推荐,但我之前就知道)。我会试试这个,并可能在这里发布它是如何进行的。

第二种解决方案建议使用 StyledCellLabelProvider。我以前研究过这个,但它对我的目的来说不够强大。至少我现在是这么认为的。

于 2010-04-19T12:43:32.817 回答