我们如何更改JFace TableViewer中显示的log4j消息的颜色

时间:2014-09-05 05:45:37

标签: java log4j swt 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;
        }

1 个答案:

答案 0 :(得分:0)

您拨打ViewerCell.setBackgroundViewerCell.setForegroundupdate方式设置单元格的背景和前景色。

另外,您可以覆盖updateColumnLabelProvergetText方法,而不是覆盖getBackground的{​​{1}}方法。