簡體   English   中英

在JFace tableviewer中更改行的背景顏色時出錯

[英]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 ,則必須將其用於與列相關的所有操作-因此,您需要覆蓋getTextgetForeground

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM