2014-09-05 29 views
0

我在創建的TableViewer上顯示log4j消息,但現在我想根據info,debug,warning和error消息更改消息的顏色。如何才能做到這一點?將消息提取到表查看器的代碼如下:我們如何更改JFace TableViewer中顯示的log4j消息的顏色

TableViewerColumn message = new TableViewerColumn(viewer, SWT.NONE); 
     message.getColumn().setWidth(800); 
     message.getColumn().setText("Message"); 
     message.setLabelProvider(new ColumnLabelProvider() 
     { 
      @Override 
      public void update(ViewerCell cell) 
      { 
       Object element = cell.getElement(); 
       if(element instanceof MyObject) 
       { 
        MyObject obj = (MyObject) element; 

        cell.setText(obj.getMessage()); 
       } 
      } 
     }); 
    } 

    private static class MyObject 
    { 
     private String first; 
     private String second; 
     private String message; 

     public MyObject(String first, String second,String message) 
     { 
      this.first = first; 
      this.second = second; 
      this.message = message; 
     } 

     public String getFirst() 
     { 
      return first; 
     } 

     public void setFirst(String first) 
     { 
      this.first = first; 
     } 

     public String getSecond() 
     { 
      return second; 
     } 

     public void setSecond(String message) 
     { 
      this.second = second; 
     } 

     public String getMessage() 
     { 
      return message; 
     } 

     public void setMessage(String message) 
     { 
      this.message = message; 
     } 

回答

0

你叫ViewerCell.setBackgroundViewerCell.setForeground設置單元格的背景色和前景色在update方法。

或者代替覆蓋的ColumnLabelProverupdate方法可以覆蓋getTextgetBackgroundgetForeground方法。

相關問題