2016-07-14 45 views
0

有誰知道如何禁用JFace的單排TableViwer?我有一個TableViwer構造如下:禁用JFace TableViwer單排

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

電視可以有很多行,但我動態(外部單擊按鈕時)將特定的唯一行的表,我需要做只是該行禁用(變灰,不可選,如果沒有其他選項,也可以通過現有處理程序實現不可選擇)。

我在谷歌搜索,但沒有得到太多的信息。我是新來的SWT/JFace,所以任何幫助,將不勝感激。

回答

1

您將不得不在選擇監聽器中做某些操作來拒絕選擇該行。

爲了使排灰,你可以讓你的標籤提供者實現IColorProvider它可以讓你定義了兩種方法:

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

可着色行。

您也可以使用從StyledCellLabelProvider派生的標籤提供者,它允許您定義更復雜的着色。

+0

Hi @Greg ......感謝您的幫助,當我添加該行時,背景顏色正在設置。但是現在我面臨着更多的問題,實際上用戶可以選擇將數據保存在xml中。所以當表格從xml首次加載數據時,背景顏色不會改變。 – user2018023

+0

這是一個新問題。接受此答案,然後詢問顯示問題代碼最小版本的新問題。 –

+0

感謝您的幫助@Greg,我接受了您的答案。 – user2018023