2016-07-14 9 views
0

誰かがJFaceの単一行を無効にする方法を知っていますかTableViwer?私は以下のように構築TableViwerを持っている:JFace TableViwerの単一行を無効にする

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

テレビは、多くの行を持つことができますが、私は(外部ボタンがクリックされたとき)に動的テーブルに特定のユニークな行を追加していると私は唯一のその行が無効にする必要があり(灰色で表示され、選択できません。他のオプションがない場合は、既存のハンドラでも選択できません)。

Googleで検索しましたが、情報があまりありませんでした。私はSWT/JFaceを初めて使っているので、どんな助けもありがたいです。

答えて

1

行の選択を拒否するには、選択リスナーで何かを行う必要があります。

行は、あなたのラベル・プロバイダーを使用すると、2つのメソッドを定義することができます IColorProviderを実装することができますグレーにするには:行に色を付けることができます

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

を。

StyledCellLabelProviderから派生したラベルプロバイダを使用して、より複雑な色付けを定義することもできます。

+0

こんにちは@Greg ......ありがとう、私は行を追加するときに背景色が設定されています。しかし、今私はもう一つの問題に直面しています。実際には、ユーザーはxmlでデータを保存するオプションを持っています。したがって、テーブルからXMLから最初にデータがロードされると、背景色は変更されません。 – user2018023

+0

これは新しい質問です。この回答を受け入れ、問題のコードの最小限のバージョンを示す新しい質問をしてください。 –

+0

助けてくれてありがとう@Greg、私はあなたの答えを受け入れました。 – user2018023

関連する問題