禁用 JFace TableViwer 单行

Disable JFace TableViwer single row

有谁知道如何禁用 JFace 的单行 TableViwer?我有一个 TableViwer 构造如下:

TableViwer tv = new TableViwer(composite, SWT.NONE| SWT.FULL_SELECTION | SWT.BORDER);

tv 可以有很多行,但我正在动态地向 table 添加一个特定的唯一行(当单击外部按钮时),我只需要禁用该行(变灰而不是选择table.not selectable也可以通过已有的handler来实现,如果没有其他选择的话)。

我在 google 中搜索,但没有得到太多信息。我是 SWT/JFace 的新手,如有任何帮助,我们将不胜感激。

您必须在选择侦听器中执行某些操作才能拒绝选择该行。

要使行变灰,您可以让您的标签提供程序实现 IColorProvider,它允许您定义两种方法:

public Color getForeground(Object element);
public Color getBackground(Object element);

可以为行着色。

您还可以使用派生自 StyledCellLabelProvider 的标签提供程序,它可以让您定义更复杂的着色。