3

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

我当前的解决方法包括为包装的 Table 控件设置一个 MouseListener,其中 mouseDown 事件坐标使用getCell()方法转换为单元格并执行操作。然后,我使用内容提供程序来提供图像和格式化文本,它们在某种程度上接近相应小部件的外观。

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

  • 这是一个黑客
  • 捕获的小部件偶尔会变得可见,从而在屏幕上创建闪烁的伪影
  • 它需要图像处理技巧来使捕获的图像与表格颜色混合
  • 当需要不同内容的按钮时,它不能很好地缩放

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

4

1 回答 1

0

您可以为此使用单元编辑器。这不是您想要的,因为小部件仅在编辑期间显示,但我认为它非常接近。

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

于 2011-05-27T14:30:24.217 回答