实现SWT(JFace)里的表格隔行换色功能
2006-06-15 22:24
375 查看
1,在使用TableViewer时,要实现隔列换色是比较容易的,只要在标签提供器里加上表格的颜色提供器的实现就可以,代码也很简单.如下:
public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
.....
public Color getForeground(Object element, int columnIndex) {
return force[columnIndex%2];
}
public Color getBackground(Object element, int columnIndex) {
return bg[columnIndex%2];
}
}
bg是背景色,分两种,force是前景色,也是两种,分别对应,想换成其它的颜色,修改两个定义部分就可以了.
2,但要实现隔行换色就比较麻烦些了,不过还是可以实现,实现原理也很简单,就是记录上一次的对象,与本次对象如果不同就换颜色,否则一直使用当前颜色.代码如下:
public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
private Object current = null;
private int currentColor = 0;
......
public Color getForeground(Object element, int columnIndex) {
return force[currentColor];
}
public Color getBackground(Object element, int columnIndex) {
if (current != element) {
currentColor = 1 - currentColor;
current = element;
}
return bg[currentColor];
}
}
颜色也是和上面一样,不过这样做出来的隔行换色毕竟还不是SWT表格本身支持的,如果表格行没有充满,在后面看到的还是表格的背景色(默认白色)
public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
.....
public Color getForeground(Object element, int columnIndex) {
return force[columnIndex%2];
}
public Color getBackground(Object element, int columnIndex) {
return bg[columnIndex%2];
}
}
bg是背景色,分两种,force是前景色,也是两种,分别对应,想换成其它的颜色,修改两个定义部分就可以了.
2,但要实现隔行换色就比较麻烦些了,不过还是可以实现,实现原理也很简单,就是记录上一次的对象,与本次对象如果不同就换颜色,否则一直使用当前颜色.代码如下:
public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
private Object current = null;
private int currentColor = 0;
......
public Color getForeground(Object element, int columnIndex) {
return force[currentColor];
}
public Color getBackground(Object element, int columnIndex) {
if (current != element) {
currentColor = 1 - currentColor;
current = element;
}
return bg[currentColor];
}
}
颜色也是和上面一样,不过这样做出来的隔行换色毕竟还不是SWT表格本身支持的,如果表格行没有充满,在后面看到的还是表格的背景色(默认白色)
相关文章推荐
- JS实现表格隔行换色,鼠标经过换色,单击换色,再单击还原等功能
- 实现SWT打印表格与图片功能(ZT)
- 使用jquery hover事件实现表格的隔行换色功能示例
- jQuery hover事件 使用jquery实现表格的隔行换色功能
- 使用jquery hover事件实现表格的隔行换色功能示例
- jQuery实现的简单动态添加、删除表格功能示例
- 用jQuery实现表格的隔行变色
- JS实现表格数据各种搜索功能的方法
- SWT(JFace) 简易浏览器 制作实现代码第1/2页
- jq实现表格上移/下移/置顶功能
- android 用ListvVew实现表格功能Sample
- JQuery Plugin-TableExport实现前端表格的导出功能(已解决表格pdf导出中文格式问题)
- DIV+CSS实现表格功能(不支垂直居中)
- jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
- JS简单实现表格排序功能示例
- SWT实现右键菜单功能
- JavaScript实现的斑马线表格效果【隔行变色】
- jQuery 实现双击编辑表格功能
- Swt/Jface listviewer的实现
- Dom实现表格的隔行变色代码