[英]Error in changing background color of row in JFace tableviewer
我想根據特定條件更改tableviewer的行顏色。 我使用了以下代碼段。
tableViewer.setLabelProvider(new ColumnLabelProvider(){
@Override
public Color getForeground(Object element){
super.clearListeners();
if((((MyClass)element).getMyMethodValue()).equals("ABC"))
return Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
else
return null;
}
});
行的顏色正在更改,但是每個單元格的文本都更改為模型類“ MYClass”的對象名,例如com.sample.JfaceProject.model.MyClass@394083。 我很困惑為什么表的每個單元格中的文本都更改了。 我做得對嗎? 誰能建議我一些想法。
提前致謝
如果使用ColumnLabelProvider
,則必須將其用於與列相關的所有操作-因此,您需要覆蓋getText
和getForeground
。
ColumnLabelProvider
的默認getText
為
public String getText(Object element) {
return element == null ? "" : element.toString();//$NON-NLS-1$
}
它是element.toString()
,它產生“ com.sample.JfaceProject.model.MyClass@394083”輸出-這是默認的Object.toString()
輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.