JFace TableViewer单元格中的小部件?

时间:2011-05-27 09:29:01

标签: eclipse widget jface tableviewer

我正在Eclipse 3.6上使用JFace开发一个应用程序,我希望在TableViewer中有实际的小部件 - 主要是复选框和按钮。我发现的一切似乎都表明目前这是不可能的。

我目前的解决方法是为包装的Table控件设置一个MouseListener,其中mouseDown事件坐标使用getCell()方法转换为单元格并采取行动。然后,我使用内容提供程序提供图像和格式化文本,这些文本稍微接近各个小部件的外观。

问题是结果根本不是原生的。有一些解决方法涉及截取实际本机小部件的屏幕截图,但这有一些问题:

  • 这是一个黑客
  • 捕获的小部件偶尔会变得可见,在屏幕上创建一个闪烁的神器
  • 它需要图像处理技巧,以使捕获的图像与表格颜色混合
  • 例如,它不能很好地扩展需要具有不同内容的按钮

有没有办法在不使用这些繁琐的方法的情况下在TableViewer单元格中嵌入小部件?底层的SWT表当然可以做到这一点,但TableViewer界面似乎不支持这个......

1 个答案:

答案 0 :(得分:0)

您可以使用celleditors进行此操作。这不完全是你想要的,因为小部件只在编辑过程中显示,但我认为,它非常接近。

请参阅维基页面上的http://wiki.eclipse.org/JFaceSnippets#Snippet027ComboBoxCellEditors或其他CellEditor示例。