在某些操作系统(例如我的 Ubuntu 11.10)中,有有趣的表格元素行为:背景颜色从白色变为灰色(第一个元素是白色,第二个元素是灰色,第三个元素是白色等)。
在我的应用程序中,我想编写自己的 CellLabelProvider
对于 JFace TableViewer
(这是必要的),我正在使用类 OwnerDrawLabelProvider
的扩展(并覆盖paint方法)。
我想用我自己的颜色绘制指定的行,并用系统颜色绘制其他行 (Display.getCurrent().getSystemColor(...))
,但问题是,如果我把它画在 SWT.COLOR_LIST_BACKGROUND
中,然后所有行都被漆成白色,没有交替。如何设置?
我调试了应用程序,并意识到两种类型的原始数据(白色和灰色)具有相同的颜色 - 白色(这是正确的)。
最佳答案
没有办法像操作系统那样显式地“所有者绘制”它。如果您希望一行具有其 native 背景颜色,则您绝对不能自己绘制背景。
关于java - SWT TableViewer 颜色交替(在某些操作系统中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685741/