在某些操作系统(例如我的Ubuntu 11.10)中,表格元素的行为有趣:背景颜色由白色变为灰色(第一个元素为白色,第二个为灰色,第三个为白色,等等)。
在我的应用程序中,我想为CellLabelProvider
编写自己的JFace TableViewer
(这是必要的),并且我正在使用类OwnerDrawLabelProvider
的扩展名(并覆盖paint方法)。
我想用我自己的颜色绘制指定的行,而用系统颜色(Display.getCurrent().getSystemColor(...))
绘制其他行,但是问题是,如果我用SWT.COLOR_LIST_BACKGROUND
绘制它,那么所有行都被绘制成白色,白色交替出现。我该如何设置?
我调试了应用程序,并意识到两种原始类型(白色和灰色)都具有参差不齐的颜色-白色(是正确的)。
最佳答案
没有办法像操作系统那样显式地“拥有所有者”。如果您希望某行具有其本机背景色,则不必自己绘制背景。