我正在使用一个标准的 swt 表,您可能知道,默认情况下,选择一个项目时颜色为蓝色(Windows 标准)。当选择处于非活动状态时,它会变成浅灰色。我想覆盖这两种颜色...我在整个网络上进行了搜索,但只能找到一些非常旧的代码,这些代码似乎不再适用于表格小部件。
下面是一些示例代码,我试图覆盖默认颜色,但它似乎不起作用(请原谅肮脏的代码,只是想让一些东西起作用):
table.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
Color rowSelectionColor =
new Color(Display.getCurrent(),new RGB(235, 200, 211));
TableItem item =(TableItem)event.item;
item.setBackground(0,rowSelectionColor);
item.setBackground(1,rowSelectionColor);
item.setBackground(2,rowSelectionColor);
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {
Color rowSelectionColor =
new Color(Display.getCurrent(),new RGB(235, 200, 211));
TableItem item =(TableItem)event.item;
item.setBackground(0,rowSelectionColor);
item.setBackground(1,rowSelectionColor);
item.setBackground(2,rowSelectionColor);
}
});
任何想法将不胜感激:D
如果您想使用 TableViewer 来管理表格,您可以使用 StyledCellLabelProvider 来确定单个单元格的颜色/字体等。 TableViewer 将为您处理“所有者绘制”方面的问题。最大的麻烦是设置与 TableViewer 一起使用的 ContentProvider、LabelProvider 和输入类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)